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

class Solution {
    public boolean isValid(String s) {
        Stack stack= new Stack();
        for(char c:s.toCharArray()){
            if(c=='(')
                stack.push(')');
           else if(c=='[')
                stack.push(']');
           else if(c=='{')
                stack.push('}');
            else if(stack.isEmpty()||stack.pop()!=c)
                return false;
            
            
            
        }
        
        return stack.isEmpty();
        
    }
}

首先把字符串里面的左括号所对应的右括号进栈,当遇到不是左括号的时候,就判断这个括号是否和刚进栈的字符一样。
在查完之前,如果栈为空,说明这个字符之前的括号都是配对的,并且这个是右括号,返回false
例如;’([]){’ 前四个字符配对,第五个没有配对的,所以返回false.
如果有不理解的地方,请联系我

你可能感兴趣的:(算法)