力扣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();
    }
}
相关推荐
无糖可可果3 分钟前
React 性能优化利器:深入理解 `useCallback`、`useMemo` 与 `React.memo`
前端
今日无bug6 分钟前
JS 同步与异步:从单线程到 Promise
javascript·promise
Yoram6 分钟前
JavaScript 错误处理的一种整理与实践
前端
xieliyu.9 分钟前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
你听得到1110 分钟前
排查 App 问题:别只盯着报错,把前后发生的事情串起来
android·前端·flutter
云烟成雨TD19 分钟前
Micrometer 系列【28】Spring Boot Actuator | 其他指标速览
java·spring boot·云原生
meilindehuzi_a21 分钟前
深入理解 Linux 进程地址空间:从虚拟内存、页表映射到 fork 写时拷贝与 VMA 管理
java·linux·服务器
lllsure22 分钟前
Vue&React Router
前端·vue.js·react.js
weixin_4316004423 分钟前
为什么 Agent REPL 要上 Ink:好处、用法与内部设计
前端·学习·ai·agent·ai编程
莫得感情 o28 分钟前
设计模式 13 · 桥接模式
java·设计模式·桥接模式