leetcode 第二十题 有效的括号(C语言)--利用栈来求解_leetcode中c语言malloc_过狸的博客-程序员秘密

技术标签: 算法  c语言  leetcode  

题目如下:

给出的示例如下:

代码如下: 

主要利用栈来解决问题,下方重要的地方都给出了注释。

bool isValid(char * s){
    char* stack=(char*)malloc(sizeof(char)*3500); //给栈预留足够测试的空间
    int n=strlen(s);                        //n为接收数组的的长度
    int top=0;
    for(int i=0;i<n;i++){
        if(s[i]=='('||s[i]=='['||s[i]=='{'){        //遇到左括号则进行入栈操作
            stack[top++]=s[i];
        }else{
            if(top==0){                     //遍历完如栈空则表示没有左括号输出false
                return false;
            }
            switch(stack[top-1]){               //利用switch遍历寻找右括号
                case '(':
                if(s[i]==')'){                  //如找到对应的右括号则则将其对应左括号弹出栈
                   top--; 
                }else{
                    return false;                //如找不到返回false
                }
                break;
                case'[':
                if(s[i]==']'){
                    top--;
                }else{
                    return false;
                }
                break;
                case'{':
                if(s[i]=='}'){
                    top--;
                }else{
                    return false;
                }
                break;
            }
        }
    }
    return top==0;              //如果最后栈空则返回true 反之为false
}

最后在leetcode上的运行结果:

 希望对大家能有所帮助!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/guolizw/article/details/123394654

智能推荐

分布式系统唯一ID设计_good-destiny的博客-程序员秘密

目录1 概述2 分布式唯一ID特点3分布式唯一ID传统方案3.1 UUID3.2数据库生成3.3Redis生成ID3.4利用zookeeper生成唯一ID3.5snowflake(雪花算法)方案1 概述 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一...

仿新闻类App实现滑动或点击换页思路_bestswifter的博客-程序员秘密

1.任务需求: 顶部有一个UIScrollview,用于显示分类标签,每个分类标签对应一个UITableView,所有的UITableview放在底部的UIScrollview中以便于滑动。可以通过点击顶部分类标签来滑动到对应视图,也可以通过手势左右滑动切换页面。2.初遇问题: 点击顶部分类标签滑动时,由于需要通过调用UIScrollview的setContentOffse

小程序评论回复和发帖违规内容、图片检测功能实战_ChinaLzw的博客-程序员秘密

这次分享下“发帖功能”,这个功能其实风险蛮大的,特别是对一些敏感言论的控制,如果没有做好可能导致小程序被封,所以除了必要的人工审核和巡查以外,我们需要一些微信安全监测API的帮忙,在AI加持下,现在很多大公司对内容和图片的效率大大提高了。这个DEMO仅是一个流程示例,由于涉及到云函数和“真”敏感图,这里就有文字图代替。发帖的功能只要理清思路,其实并不复杂,利用机器AI做内容...

04 模块 Prism For WPF_马小巍的博客-程序员秘密

使用Prism的WPF库进行模块化应用程序开发模块化应用程序——可以被分解成一组松散耦合的功能单元(模块),又可以集成到一个更大的应用程序中。客户端模块封装了应用程序全部功能的一部分,典型地表现了一组相关的关系。它可以包含一些相关联的组件,如应用特征;也可以包含用户界面和业务逻辑,或者一部分应用程序的基础结构,如应用级的日志或用户验证。模块之间相互独立但又可以通过一种松散耦合的方式相互通信。使用模块

写Json_瘋小書的博客-程序员秘密

package com.example.day_17bean2json;import java.util.ArrayList;import com.google.gson.Gson;import android.os.Bundle;import android.app.Activity;import android.view.Menu;pub

随便推点

java序列化文件解析_Java程序员必备:序列化全方位解析_weixin_39657521的博客-程序员秘密

前言相信大家日常开发中,经常看到Java对象“implements Serializable”。那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~什么是Java序列化?为什么需要序列化?序列化用途Java序列化常用API序列化的使用序列化底层日常开发序列化的注意点序列化常见面试题一、什么是Java序列化?序列化:把Java对象转换为字节序列的过程反序列:把字节序列恢复为Java对象...

k8s集群部署 (1)_AluckyLive的博客-程序员秘密

Minikubu 单节点微型k8s(仅供学习和预览使用)二进制安装部署(生产首选)使用kubeadmin进行部署,k8s的部署工具,跑在k8s里(相对简单,熟手推荐)使用官网提供的Minikube可以进行试验点击 Launch Terminal命令查询关键组件早期使用http通信,新版本ssl通信,自签证书二进制部署较为复杂,熟练地工程师需要一天。.........

Codeforces Round #502 (in memory of Leopoldo Taravilse, Div. 1 + Div. 2)-C. The Phone Number_Smiler_的博客-程序员秘密

C. The Phone Number题意:给你n个数字从1到n,现在让你用这n个数字构造一个序列,使得最长上升子序列和最长下降子序列的和最小。思路:我们可以先打一个表观察一下规律,通过打标找规律我们可以发现,对于n&amp;lt;=x*y,当x+y最小的时候就是最小的和,通过分析我们可以发现,我们相当于是把n个数字分成x组,使得每组最多y个数字,在每一组中构成的是最长下降序列,x组构成的是最长上...

PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法_大鹏的世界的博客-程序员秘密

目前的工作是需要对用户的一些数据进行分析,每个用户都有若干条记录,每条记录中有用户的一个位置,是用经度和纬度表示的。还有一个给定的数据库,存储的是一些已知地点以及他们的经纬度,内有43W多条的数据。现在需要拿用户的经纬度和已知地点进行距离匹配,如果它们之间的距离小于一定的数据,比如说500米,就认为用户是在这个地点。MYSQL本身是支持空间索引的,但是在5.x的版本中,取消了对Dist

linux命令发送邮件_linux 发邮件命令_阿文_ing的博客-程序员秘密

sendEmail -o message-charset=utf-8 -f [email protected] -t [email protected] -s smtp.mxhichina.com -u xxx -xu [email protected] -xp xxx -m xxx -l /test/sendEmail.log -a xxx.zip-message-charset=gbk-f 发送邮件的邮箱-t...

Sqoop2安装步骤详情及安装包下载_hadoop3 sqoop2安装_家有诗书的博客-程序员秘密

下载https://306t.com/file/24704272-456283295下载后得到:sqoop-1.99.7-bin-hadoop200.tar.gz文件其中sqoop1和sqoop2区别可以参考以下链接重拾初心——Sqoop1和Sqoop2的刨析对比http://blog.csdn.net/gamer_gyt/article/details/55225700安装安装步骤参考官方文档http://sqoop.apache.org/docs/1.99.7/admin/I...

推荐文章

热门文章

相关标签