力扣20.有效的括号
题目描述
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例
示例 1:输入:s = "()"
输出:true示例 2:输入:s = "()[]{}"
输出:true示例 3:输入:s = "(]"
输出:false示例 4:输入:s = "([)]"
输出:false示例 5:输入:s = "{[]}"
输出:true
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
解题思路
看了官方解答写的
c语言用一个数组表示栈,同时需要一个栈顶指针top初始=0
用strlen获取数组长度
1.若数组长度为奇数,必定不符合要求 false
2.若先读到右括号,必定不闭合,返回false
3.若读到的右括号与栈顶的左括号不匹配,返回false
4.若读到的右括号与栈顶的左括号匹配,top–,可视为出栈
5.若读到的是左括号,压栈,top++
若最后栈不为空,即有左括号未匹配到右括号,false
代码
char pair(char s){if(s == ')')return '(';if(s == '}')return '{';if(s == ']')return '[';return 0;
}bool isValid(char * s){int length = strlen(s);if(length %2 == 1)return false;int stack[length + 1], top = 0;for(int i = 0; i < length; i++){char ch = pair(s[i]);if(ch){if(top == 0 || stack[top-1] != ch){return false;}top--;}else{stack[top++] = s[i];}}return top == 0;
}
链接
力扣20.有效的括号相关推荐
- 算法训练第十一天|力扣20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值
20. 有效的括号 题目链接:有效的括号 参考:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B ...
- 力扣20. 有效的括号(JavaScript)
定义map,把key保存在数组中,再通过查找value看是否对应 var isValid = function(s) {let arr=[]let map=new Map()map={'(':')', ...
- 力扣解法汇总856. 括号的分数
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...
- 力扣20题 有效的括号(栈、哈希表)
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 每个右括号都 ...
- 【力扣-20】有效的括号
- 力扣20-有效的括号(C++,附思路)
思路: 栈适用于解决匹配之类的问题,在学习数据结构的时候老师讲过,用栈实现简易计算器的题目中也有所练习,所以应该能想到这个题用stack解决. 题目中2.必须以正确的顺序闭合就是如果输入的是([,那 ...
- 【力扣LeetCode】22 括号生成
题目描述(难度中) 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", &qu ...
- 力扣---LeetCode20. 有效的括号(栈)
文章目录 前言
- 力扣编程题-解法汇总
一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...
最新文章
- JAVA Web.xml 加载顺序
- 一篇不一样的docker原理解析 提高篇
- asp.net页面出错时的处理方法
- 数据结构之线性表——链式存储结构之单链表(php代码实现)
- Luogu1939 【模板】矩阵加速(数列)
- VLfeat库---研习
- 修改群晖mac 及 sn
- 本地上传文件到服务器
- android脚本工具,安卓脚本编程软件
- 24V电磁铁电磁特模块电路分析
- Chrome 安装插件 win10 Edge 安装 位置
- 从金庸小说看古代武侠世界计划生育
- 计算机键盘分为哪几个键区,标准键盘一般分为哪四个键区
- 【Orangepi Zero2 全志H616】普通IO操作
- 一个图层隶属下一个图层
- 【Tensorflow2.x学习笔记】- 神经网络
- TeamCity打包部署镜像
- 宣传活动任务后台管理之促销活动业务分析...
- tensorflow+imageai环境搭建到图像预测和图像侦测
- ONF组织的SDN架构文档——原理与架构构件(二/一)
热门文章
- php对json数据处理,在PHP中处理JSON的后期数据
- 用计算机听音乐和看电影的ppt,五年级下册信息技术课件-第六课 用计算机听音乐和看电影 川教版 (共13张PPT)...
- k8s架构及服务详解
- 管理Shader——Shader概览
- 销售流程图_34页财务管理制度和流程图!让你明白会计工作要点,总结全面清晰...
- python实验报告代写_TensorFlow作业代写、代做Python程序语言作业、代写github课程作业、Python实验作业代写...
- Python之线程(一)
- python sqlalchemy orm
- (04)FPGA芯片选型原则
- (24)Verilog HDL条件语句:case语句