class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (stack.isEmpty()) { // 当前是空的,直接压进去
stack.push(c);
continue;
}
char top = stack.peek();
if ((top == '(' && c == ')') || (top == '{' && c == '}') || (top == '[' && c == ']')) {
stack.pop(); //当前字符配对成功,弹出顶层的
} else {
stack.push(c); //当前字符配对失败,压入栈内
}
}
return stack.isEmpty();
}
}