20. Valid Parentheses

括号配对的,用的stack,后面有类似的扩展基本都要用STACK。

注意最后必须保证STACK是空的才表示正确。

Time: O(n)
Sapce: O(n)

public class Solution {
    public boolean isValid(String s) {
        if (s.length() == 0) return true;
        if (s.length() % 2 != 0) return false;
        
        Stack<Character> stk = new Stack<>();
        for (char c: s.toCharArray()) {
            if (c == '(' || c == '[' || c == '{') stk.push(c);
            else {
                if (stk.isEmpty()) return false;
                char left = stk.pop();
                if (c == ')' && left != '(') return false;
                else if (c == ']' && left != '[') return false;
                else if (c == '}' && left != '{') return false;
            }
        }
        return stk.isEmpty();
    }
}
posted @ 2016-11-06 05:27  哇呀呀..生气啦~  阅读(92)  评论(0)    收藏  举报