题目说明

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:输入: "()"
输出: true
示例 2:输入: "()[]{}"
输出: true
示例 3:输入: "(]"
输出: false
示例 4:输入: "([)]"
输出: false
示例 5:输入: "{[]}"
输出: true

题目分析

这道题目可以通过stack栈来解决,遍历字符串s中的每个字符c,如果c是左括号,这时往栈中push对应的右括号,这样,当遍历到右括号时,此时栈的栈顶元素应该正好等于右括号。当判断之后,如果相等,那么对栈顶元素进行弹出,如果不相等或者栈为空,则返回false。

源代码

class Solution {
public:bool isValid(string s) {//假如长度是1或者不为偶数stack<char> sta;bool is_bool=false;if(s.length()==0){return true;}else if(s.length()==1){return false;}for(int i=0;i<s.length();i++){if(s[i]=='('){sta.push(')');}else if(s[i]=='{'){sta.push('}');}else if(s[i]=='['){sta.push(']');}else if(sta.empty()||sta.top()!=s[i]){return false;}else{sta.pop();}}return sta.empty();}
};

leetcode之有效的括号相关推荐

  1. LeetCode 2116. 判断一个括号字符串是否有效(栈)

    文章目录 1. 题目 2. 解题 1. 题目 一个括号字符串是只由 '(' 和 ')' 组成的 非空 字符串. 如果一个字符串满足下面 任意 一个条件,那么它就是有效的: 字符串为 (). 它可以表示 ...

  2. LeetCode 678. 有效的括号字符串(栈)

    1. 题目 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串.有效字符串具有如下规则: 任何左括号 ( 必须有相应的右括号 ). 任何右括号 ) 必须有相应 ...

  3. LeetCode 20. 有效的括号(栈)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭 ...

  4. Leetcode 1096:花括号展开 II(超详细!!!)

    如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串. 花括号展开的表达式可以看作一个由 花括号.逗号 和 小写英文字母 组成的字符串,定义下面几条语法规则: 如果只给出单 ...

  5. 【Java】LeetCode 20 有效的括号 (运用数据结构:栈 解题)

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

  6. LeetCode Valid Parentheses(判断括号是否匹配)

    题意:给出(,[,{,),],}括号组成的字符串, 判断括号是否匹配 思路:用栈结构判断 1.如果是(,[,{,将其入栈 2.如果遇到),],},看栈是否为空.栈顶元素是否对应为(,[,{ 3.将字符 ...

  7. LeetCode 20. 有效的括号(Valid Parentheses)

    栈思想 关于有效括号表达式的一个有趣属性是有效表达式的子表达式也应该是有效表达式. 整个表达式是有效的,而它的子表达式本身也是有效的.这为问题提供了一种递归结构.(栈思想) 从整体表达式中一次删除一个 ...

  8. LeetCode 20. 有效的括号 golang(三)

    20. 有效的括号 这个题做了三次,前两次的解法现在觉得是算不得正确的. 看的多写得少 做的多总结少 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有 ...

  9. LeetCode 678. 有效的括号字符串

    传送门:https://leetcode-cn.com/problems/valid-parenthesis-string 题目描述: 给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检 ...

  10. 【LeetCode笔记】22.括号生成(Java、DFS回溯、剪枝、括号)

    文章目录 题目描述 代码 & 解法 题目描述 先吐槽:括号题好恶心.. 括号有效判断需要考虑考虑 代码 & 解法 思路:把括号分开看,这道题和20.有效的括号其实是有差别的:这道题的括 ...

最新文章

  1. Java 第一个Java程序
  2. 1.微型计算机中主要包括有( ).,《微机原理与应用(1)1351》16秋在线作业2
  3. java md5 16位解密_Java实现MD5(32/16位)大小写加密
  4. Linux 内核里的数据结构——基数树
  5. 随笔——我悄悄地更新了我的博客
  6. 关于达梦监视器dmmonitor的一些知识
  7. 三星全新贴片机SM421(S)参数性能!
  8. 模型推理速度与硬件算力
  9. 自变量与因变量相关分析不显著能做回归分析吗?
  10. Java去除空格符号
  11. 如何初始搭建vue2.x项目(vue3.x请走开)
  12. 如何不花钱也能下载17sucai网的网页或者单页
  13. 软件测试学习 之 Python 类属性 实例属性、实例方法 类方法 静态方法
  14. Unity开发OpenXR | (二)使用 OpenXR 制作一款简单VR示例场景 的全过程详细教程,包含两个实战案例。
  15. Uniapp-微信小程序实现全局事件监听并进行数据埋点
  16. 七牛---借助第三方平台实现移动直播
  17. 腾讯云4核8G服务器S5.LARGE8性能测评
  18. 使用Python绘制各种方法的词云图
  19. 学习Lean 6个Sigma的一点心得
  20. Redis--String篇

热门文章

  1. (转)详解HTML网页源码的charset格式
  2. 求二叉树中某结点的父结点(左右孩子表示法)
  3. [转] TextField的restrict属性妙用
  4. moss 自定义文档库文档图标
  5. 18. 树的子结构(C++版本)
  6. MySQL 8个character_set变量的基本作用
  7. 06. 区分increment/decrement操作符的前置(prefix)和后置(postfix)形式
  8. 24. 当效率至关重要时,请在map::operator[]与map::insert之间谨慎作出选择
  9. 06. Explicitly disallow the use of compiler-generated functions you do not want
  10. iphone电池怎么保养_手机电池不耐用怎么办啊?平时要怎么保养呢?我来告诉你...