前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode栈之有效的括号

leetcode栈之有效的括号

原创
作者头像
code4it
修改2020-10-09 10:11:34
1880
修改2020-10-09 10:11:34
举报
文章被收录于专栏:码匠的流水账

本文主要记录一下leetcode栈之有效的括号

题目

代码语言:javascript
复制
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:    左括号必须用相同类型的右括号闭合。    左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

代码语言:javascript
复制
class Solution {    public boolean isValid(String s) {        Stack<Character>stack = new Stack<Character>();        for(char c: s.toCharArray()){            if(c=='(')stack.push(')');            else if(c=='[')stack.push(']');            else if(c=='{')stack.push('}');            else if(stack.isEmpty()||c!=stack.pop())return false;        }        return stack.isEmpty();    }}

小结

这里借助栈,然后遍历每个char,针对 ([{分别push对应配对的char,其他的则判断stack是否为空或者pop出来的值是否与之相等,如果不等则返回false,如果遍历完之后,stack不为空则返回false,为空返回true。

doc

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 题解
  • 小结
  • doc
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档