题目描述

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 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.有效的括号相关推荐

  1. 算法训练第十一天|力扣20. 有效的括号,1047. 删除字符串中的所有相邻重复项,150. 逆波兰表达式求值

    20. 有效的括号 题目链接:有效的括号 参考:https://programmercarl.com/0020.%E6%9C%89%E6%95%88%E7%9A%84%E6%8B%AC%E5%8F%B ...

  2. 力扣20. 有效的括号(JavaScript)

    定义map,把key保存在数组中,再通过查找value看是否对应 var isValid = function(s) {let arr=[]let map=new Map()map={'(':')', ...

  3. ​力扣解法汇总856. 括号的分数

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描 ...

  4. 力扣20题 有效的括号(栈、哈希表)

    给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 每个右括号都 ...

  5. 【力扣-20】有效的括号

  6. 力扣20-有效的括号(C++,附思路)

     思路: 栈适用于解决匹配之类的问题,在学习数据结构的时候老师讲过,用栈实现简易计算器的题目中也有所练习,所以应该能想到这个题用stack解决. 题目中2.必须以正确的顺序闭合就是如果输入的是([,那 ...

  7. 【力扣LeetCode】22 括号生成

    题目描述(难度中) 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", &qu ...

  8. 力扣---LeetCode20. 有效的括号(栈)

    文章目录 前言

  9. 力扣编程题-解法汇总

    一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...

最新文章

  1. JAVA Web.xml 加载顺序
  2. 一篇不一样的docker原理解析 提高篇
  3. asp.net页面出错时的处理方法
  4. 数据结构之线性表——链式存储结构之单链表(php代码实现)
  5. Luogu1939 【模板】矩阵加速(数列)
  6. VLfeat库---研习
  7. 修改群晖mac 及 sn
  8. 本地上传文件到服务器
  9. android脚本工具,安卓脚本编程软件
  10. 24V电磁铁电磁特模块电路分析
  11. Chrome 安装插件 win10 Edge 安装 位置
  12. 从金庸小说看古代武侠世界计划生育
  13. 计算机键盘分为哪几个键区,标准键盘一般分为哪四个键区
  14. 【Orangepi Zero2 全志H616】普通IO操作
  15. 一个图层隶属下一个图层
  16. 【Tensorflow2.x学习笔记】- 神经网络
  17. TeamCity打包部署镜像
  18. 宣传活动任务后台管理之促销活动业务分析...
  19. tensorflow+imageai环境搭建到图像预测和图像侦测
  20. ONF组织的SDN架构文档——原理与架构构件(二/一)

热门文章

  1. php对json数据处理,在PHP中处理JSON的后期数据
  2. 用计算机听音乐和看电影的ppt,五年级下册信息技术课件-第六课 用计算机听音乐和看电影 川教版 (共13张PPT)...
  3. k8s架构及服务详解
  4. 管理Shader——Shader概览
  5. 销售流程图_34页财务管理制度和流程图!让你明白会计工作要点,总结全面清晰...
  6. python实验报告代写_TensorFlow作业代写、代做Python程序语言作业、代写github课程作业、Python实验作业代写...
  7. Python之线程(一)
  8. python sqlalchemy orm
  9. (04)FPGA芯片选型原则
  10. (24)Verilog HDL条件语句:case语句