天天看點

20.有效的括号_力扣_算法

20.有效的括号_力扣_算法
  • 思路一

    用棧的思想,成對的既然要有順序的組合,那就将它推進棧裡,每次進的時候和棧頂比較一下是否成對,若成對,則彈出棧頂,進入下一次循環。

    哈哈哈哈。。。彈到棧空了,就說明全是按順序成雙成對的。

class Solution {
    //用棧的思想消去的話最好了
    public boolean isValid(String s) {
        boolean b = false;
        int len = s.length();
        if(len%2 != 0){
            return false;
        }
        Stack<Character> stack = new Stack<Character>();
        char c;
        if(len>0){
            stack.push(s.charAt(0));
        }
        for(int i = 1;i<len;i++){
            c= s.charAt(i);
            if(!stack.empty() && stack.peek() == '(' && c==')' ){
                stack.pop();
                continue;
            }
            if(!stack.empty() && c==']' && stack.peek()=='['){
                stack.pop();
                continue;
            }
            if(!stack.empty() && c=='}' && stack.peek()=='{'){
                stack.pop();
                continue;
            }
            stack.push(c);
        }
        if(stack.empty()){
            return true;
        }
        return b;
    }
}
           

繼續閱讀