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();
}
}

浙公网安备 33010602011771号