【leetcode】20. Valid Parentheses
检查括号对是否匹配
这题需要注意:
- 栈的空指针
- 全局变量stack需要clear
- 输入结束时栈长度不为空
public class Solution { private static final Stack<Character> stack = new Stack<Character>(); public boolean isValid(String s) { stack.clear(); for (int i = 0; i < s.length(); ++i) { char c = s.charAt(i); if (!isLeft(c)) { if (stack.isEmpty()) { return false; } if (!isPair(stack.pop(), c)) { return false; } } else { stack.push(c); } } return stack.isEmpty(); } private boolean isLeft(char c) { return c == '(' || c == '[' || c == '{'; } private boolean isPair(char left, char right) { if (left == '(') { return right == ')'; } else if (left == '[') { return right == ']'; } else { return right == '}'; } } }