题目
解析
- 栈先入后出,所以先进来的括号最后才会判断,符合括号先内后外的判断原则
- 如果是左括号就把对应的右括号入栈
- 如果是右括号,就看pop是不是对应的右括号,如果不是则false
class Solution {
public boolean isValid(String s) {
if (s.isEmpty()) {
return true;
}
Stack<Character> stack = new Stack<>();
char[] cs = s.toCharArray();
for (char c : cs) {
if (c == '(') {
stack.push(')');
} else if (c == '{') {
stack.push('}');
} else if (c == '[') {
stack.push(']');
} else if (stack.isEmpty() || c != stack.pop()) {
return false;
}
}
return stack.isEmpty();
}
}