20. 有效的括号

Posted hequnwang10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20. 有效的括号相关的知识,希望对你有一定的参考价值。

解题

这里巧妙使用栈,若为左括号,则将相对应的右括号进栈,若为右括号,则先判断栈是否为空,然后在判断出栈元素是否等于当前的右括号。

class Solution 
    public boolean isValid(String s) 
        //使用栈实现括号的匹配;
        Stack<Character> stack  = new Stack<Character>();
        //左括号和右括号一定是连续成对的出现,当为左括号时就将对应的右括号压栈,为右括号就出栈,最后判断栈是否为空
        for(char c : s.toCharArray())
            if(c == '(' )
                stack.push(')');
            else if(c == '[')
                stack.push(']');
            else if(c == '')
                stack.push('');
            else if( stack.isEmpty()||c != stack.pop() )
                //先判断栈是否为空 然后在将栈元素出栈。
                //如果当前值为右括号 就出栈,并且判断出栈的元素是否等于当前元素,不相等就返回false。
                return false;
            
         
        return stack.isEmpty();  
    

以上是关于20. 有效的括号的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:有效的括号20

leetcode-20.有效的括号

LeetCode - 20 :有效的括号

20. 有效的括号

力扣20-有效的括号&力扣22-括号生成

LeetCode 20. 有效的括号