20.有效括号

20.有效括号

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

示例1 :
输入:s = "()"
输出:true

示例2:
输入:s = "(){}[]"
输出:true

示例3:
输入:s = "([)]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

解析:很简单的解法,因为是一对括号,不管哪种,括号左右是不一样的,所以我们使用栈来解决这个问题,只要出现了左半边的括号,我们就把右半边元素入栈,当栈为空,或者元素不匹配就说明不是匹配的括号

java:

class Solution{
    public boolean isValid(String s){
        if(s.isEmpty())
            return true;
        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.empty() || c != stack.pop())
                return false;
        }
        if(stack.empty())
            return true;
        return false;
    }
}
posted @   十月的十日  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示
主题色彩