力扣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();
    }
}
相关推荐
松涛和鸣2 分钟前
DAY33 Linux Thread Synchronization and Mutual Exclusion
linux·运维·服务器·前端·数据结构·哈希算法
慧都小项3 分钟前
Parasoft Jtest 如何用 JSON 文件驱动Java 测试自动化
java·自动化·json
逛逛GitHub10 分钟前
我把公众号文章导入了腾讯 ima,可以对话找开源项目了。
前端·github
Можно10 分钟前
深入理解 JavaScript 函数:分类、特性与实战应用
开发语言·javascript
lionliu051921 分钟前
JavaScript 变量声明最佳实践
前端·javascript·vue.js
源去_云走24 分钟前
自建 Iconfy API 服务:解决国内访问不稳定问题
前端·容器·npm·node.js
Hui Baby25 分钟前
全局事务入口感知子事务方法-TCC
java·开发语言·数据库
AAA阿giao26 分钟前
从零开始学 React:用搭积木的方式构建你的第一个网页!
前端·javascript·学习·react.js·前端框架·vite·jsx
遇到困难睡大觉哈哈29 分钟前
Harmony OS Web 组件:如何在新窗口中打开网页(实战分享)
前端·华为·harmonyos
爱笑的眼睛1139 分钟前
FastAPI 请求验证:超越 Pydantic 基础,构建企业级验证体系
java·人工智能·python·ai