LeetCode之有效的括号

     该题目可以用栈解决,先遍历字符串,将字符串中的所有左括号压栈,然后取出栈顶元素,与剩余的元素进行配对,

若全部配对成功,返回true,否则返回false。以下为代码。

class Solution {
    public boolean isValid(String s) {
        int len = s.length();
        Stack stack = new Stack();
        if((len%2) != 0)
        {
            return false;
        }else{
            for(int i = 0;i < len;i++){
                 if((s.charAt(i)=='(')||(s.charAt(i)=='[')||(s.charAt(i)=='{')){
                stack.push(s.charAt(i));
            }else{
                if(stack.isEmpty()){
                    return false;
                }
                if(s.charAt(i)==')'){
                    if(stack.peek()!='(')
                    {
                        return false;
                    }else{
                        stack.pop();
                    }
                }else if(s.charAt(i)==']'){
                    if(stack.peek()!='[')
                    {
                        return false;
                    }else{
                        stack.pop();
                    }
                }else{
                      if(stack.peek()!='{')
                    {
                        return false;
                    }else{
                        stack.pop();
                    }
                }
            }
        }
            }
           
        if(!stack.isEmpty()){  
            return false;  
        }else{  
            return true;  
        }  
    }
}


你可能感兴趣的:(LeetCode之有效的括号)