力扣20. 有效的括号

20. 有效的括号

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

复制代码
输入:s = "()"
输出:true

示例 2:

复制代码
输入:s = "()[]{}"
输出:true

示例 3:

复制代码
输入:s = "(]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成
java 复制代码
class Solution {
    public boolean isValid(String s) {
        Stack st=new Stack<Character>();
        char[]ca=s.toCharArray();
        for(int i=0;i<ca.length;i++){
            if(ca[i]=='('||ca[i]=='{'||ca[i]=='[')
                st.push(ca[i]);
            else{
                if(st.empty()){
                    return false;
                }
                switch ((char)st.pop()){
                    case '(':
                        if(ca[i]!=')')
                            return false;
                        break;
                    case '[':
                        if(ca[i]!=']')
                            return false;
                        break;
                    case '{':
                        if(ca[i]!='}')
                            return false;
                        break;
                }
            }
        }
        return st.empty();
    }
}
相关推荐
lichenyang45314 分钟前
IPC、JSVM、UIThread、libuv:ASCF 架构图里最容易混的几个词
前端
Yeats_Liao15 分钟前
14:Servlet中的页面跳转-Java Web
java·后端·架构
用户0595401744618 分钟前
Redis记忆存储故障恢复测试踩坑实录:手动测试让我漏掉了2个一致性Bug
前端·css
用户21366100357220 分钟前
Vue2脚手架工程化与Axios集成
前端·vue.js
未秃头的程序猿20 分钟前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
张元清25 分钟前
React useDebounce Hook:给状态和回调做防抖(2026)
javascript·react.js
我不是外星人27 分钟前
我把 Claude Code 搬到网页!自研高颜值 Web 交互工作台
前端·ai编程·claude
mixuecoding37 分钟前
零成本搭建全球科技热点情报站:12 个平台,6 小时,0 元
前端
用户0595401744642 分钟前
用了3年Mock,才发现Redis记忆存储的测试一直漏掉了60%的边界场景
前端·css
鹤望兰67543 分钟前
字节跳动国际支付-后端开发-三面面经
java