力扣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();
    }
}
相关推荐
Wang's Blog1 分钟前
Java 项目实战: 交友项目 - Dubbo 启动检查
java·dubbo·交友
一木 之林6 分钟前
LangChain 第6章 Agent 智能体核心:create_agent 统一入口与 ReAct 循环
前端·react.js·langchain
零基础1238 分钟前
权限管理怎么做?从“资格”与“空间”双维度设计一套可落地的权限体系
java·服务器·数据库
starzy199014 分钟前
Flink Task 调度任务深度剖析:从调度策略到故障恢复的完整链路
java·大数据·flink
开开心心_Every21 分钟前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
不可能片场25 分钟前
Electron 发布进程被回收 用脱离进程组托住
前端·electron
Wang's Blog27 分钟前
Java 项目实战: 交友项目 - 技术架构与选型剖析
java·架构·交友
我是大猴子28 分钟前
一些八股和限流措施
java
kaixin_learn_qt_ing31 分钟前
hexdump -C /path/to/binary | less 看十六进制内容
前端·css·less
java1234_小锋33 分钟前
【技术专题】HTML5 网页技术 - HTML5 链接与图片
前端·html·html5