给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

解决方法:有效括号可采用栈的原理。遍历字符串,对于左括号入栈,遇到右括号,则将栈顶匀速弹出,如果两括号刚好匹配,则为有效字符。

代码实现:

class Solution {public boolean isValid(String s) {if(s.length()==0){return true;}Stack <Character> stack = new Stack(); //创建一个字符型的栈。for(char ch : s.toCharArray()) { //字符数组的遍历方式//左括号就入栈if(ch=='('||ch=='['||ch=='{'){stack.push(ch);} else { //不是左括号,那就要看第一个出栈的括号与之是否匹配,不匹配返回false。if(stack.isEmpty()){ //出现右括号,即将要出栈的时候,发现栈为空,没有元素可出。则返回falsereturn false; } else{char temp = stack.pop();if(ch==')' && temp != '('){return false;}else if(ch==']' && temp != '[') {return false;}else if(ch=='}' && temp != '{'){return false;}}}}//循环结束,如果栈为空,说明刚好匹配;如果栈不为空,说明找完所有的右括号,入栈的左括号没有匹配完,则返回false。 return stack.isEmpty() ? true : false; }
}

ps:

ToCharArray( ):将字符串对象中的字符转换为一个字符数组。

for(char ch: a ) :字符遍历循环

LeetCode 有效括号相关推荐

  1. [DFS|剪枝] leetcode 22 括号生成

    [DFS|剪枝] leetcode 22 括号生成 1.题目 题目链接 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合. 示例: 输入:n = 3 输出:[& ...

  2. 【LeetCode】括号(有效括号、括号生成、最长有效括号)

    文章目录 括号★★ 有效的括号★ 最长有效括号★★★ 有效的括号字符串★★ 使括号有效的最少添加★★ 有效括号的嵌套深度★★ 反转每对括号间的子串★★ 括号★★ LeetC面试题 08.09. 括号 ...

  3. LeetCode 1614. 括号的最大嵌套深度

    文章目录 1. 题目 2. 解题 1. 题目 如果字符串满足一下条件之一,则可以称之为 有效括号字符串(valid parentheses string,可以简写为 VPS): 字符串是一个空字符串 ...

  4. LeetCode 856. 括号的分数

    1. 题目 给定一个平衡括号字符串 S,按下述规则计算该字符串的分数: () 得 1 分. AB 得 A + B 分,其中 A 和 B 是平衡括号字符串. (A) 得 2 * A 分,其中 A 是平衡 ...

  5. LeetCode 22. 括号生成(回溯/DP)

    文章目录 1. 题目 2. 解题 2.1 暴力回溯 2.2 DP 1. 题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结 ...

  6. leetcode - 22. 括号生成

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

  7. LeetCode.M22.括号生成

    LeetCode.M22 题目: 题目大意: ​ 给定一个n,使用n对括号,生成所有合法的括号组合并返回. 数据范围: 如图所示 思路: ​ 使用递归.每层递归考虑是添加一个"(" ...

  8. leetcode 22. 括号生成

    难度:中等 频次:62 题目: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 解题思路:DFS DFS注意 构造一棵树,只要遍历就行了 递归结束条件是 ...

  9. Leetcode 22.括号生成 (每日一题 20210623)

    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合.示例 1:输入:n = 3 输出:["((()))","(()())&quo ...

  10. LeetCode 22. 括号生成(Generate Parentheses)

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

最新文章

  1. python数据结构推荐书-关于数据结构,有哪些不错的参考书推荐?
  2. Java常用正则表达式
  3. 职业高中计算机英语教案,职高英语shopping教学设计.doc
  4. java连接数据库代码写在哪里,jdbc连接数据库怎么做的。代码写哪里呀 求大神
  5. 提升应用程序弹性:保障工作负载正常运行
  6. 管理者和领导者的区别_如何赢得领导者的尊重
  7. api 原生hbase_数据查询的玄铁剑:云HBase原生二级索引发布
  8. html 头尾代码自动,HTML Head Generator - 纯 CSS 实现的头部元标签代码生成器 - 钉子の次元...
  9. 荣耀Play3新版曝光:麒麟710A加持 其他配置不变
  10. Mac安装JDK1.8及环境变量配置
  11. 国外计算机论文翻译,计算机论文外文翻译
  12. Python数据分析之智联招聘职位分析完整项目(数据爬取,数据分析,数据可视化)
  13. 屏蔽网站、网页和弹窗的方法
  14. PHP在线客服系统之小程序客服搭建教程
  15. TNW:Tumblr博文已超200亿
  16. win7、win10安装Microsoft Loopback 接口
  17. 我们如何造红色敞篷跑车
  18. Lodash的一些基本使用
  19. Linux中top命令参数说明
  20. python中循环结构后怎么用sum函数怎么用_python sum函数 教程《python的sum函数怎么用?》...

热门文章

  1. 爬虫python对电脑要求_python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学...
  2. 第7章用户界面设计工具
  3. undefined reference to symbol 'GOMP_parallel@@GOMP_4.0'
  4. 嵌入式C语言之---模块化编程
  5. 关于stm32端口配置CRH,CRL的说明GPIOG->CRH\\\\=0XFFFF0FFF
  6. 给每段视频添加相同片头要怎么才能高效制作?
  7. json转义html
  8. linux 如何进入特权模式,如何以特权模式运行Docker CentOS?
  9. 公有云和私有云的主要区别在哪里
  10. 使用手机QQ前要了解的必备常识