1. 程式人生 > >給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效

給定一個只包括 '(',')','{','}','[',']' 的字串,判斷字串是否有效

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()||stack.pop()!=c)
                return false;
            
            
            
        }
        
        return stack.isEmpty();
        
    }
}

首先把字串裡面的左括號所對應的右括號進棧,當遇到不是左括號的時候,就判斷這個括號是否和剛進棧的字元一樣。 在查完之前,如果棧為空,說明這個字元之前的括號都是配對的,並且這個是右括號,返回false 例如;’([]){’ 前四個字元配對,第五個沒有配對的,所以返回false. 如果有不理解的地方,請聯絡我