• LeetCode No20. 有效的括号


    题目

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

    有效字符串需满足:

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

    示例 1:

    输入:s = "()"
    输出:true

    示例 2:

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

    示例 3:

    输入:s = "(]"
    输出:false

    示例 4:

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

    示例 5:

    输入:s = "{[]}"
    输出:true

    提示:

    1 <= s.length <= 10^4
    s 仅由括号 '()[]{}' 组成

    思路

    括号匹配,简单栈的用法,利用栈的先进后出原则,做括号匹配。

    AC代码

    点击查看代码
    class Solution {
        public boolean isValid(String s) {
            Stack<Character> st = new Stack<>();
            char[] chars = s.toCharArray();
            int len = chars.length;
            for(char ch: chars ) {
                if( "({[".contains(""+ch) ) {
                    st.push(ch);
                    continue;
                }
                char top = ' ';
                if( !st.isEmpty() ) {
                    top = st.pop();
                }
                if( ch == ')' ) {
                    if( top!='(' ) {
                        return false;
                    }
                }
                if( ch == '}' ) {
                    if(  top!='{' ) {
                        return false;
                    }
                }
                if( ch == ']' ) {
                    if( top!='[' ) {
                        return false;
                    }
                }
            }
            return st.isEmpty();
        }
    }
    
  • 相关阅读:
    自动化基础知识
    第一章Google软件测试介绍
    《将博客搬至CSDN》
    二叉树的先序遍历和中序遍历分析(递归)
    java 部分快捷功能
    toString
    自增自减运算符剖析
    二进制数的直接表示
    编程中的&&和||
    npm 镜像地址设置
  • 原文地址:https://www.cnblogs.com/Asimple/p/16180428.html
Copyright © 2020-2023  润新知