class Solution {
public boolean isValid(String s) {
if (s.length() == 0 || s == null) {
return false;
}
Deque<Character> stack = new ArrayDeque<>();
for(int i=0; i<s.length(); i++){
//如果遇上左括号就全放进去
if(s.charAt(i) == '(' ||
s.charAt(i) == '{' ||
s.charAt(i) == '[') {
stack.addLast(s.charAt(i));
} else {
//如果是右边,先检查是否为空
if(stack.isEmpty()){
return false;
}
//如果不为空,弹出最上面一个
char temp = stack.removeLast();
//如果弹出的左括号和右括号配对,继续下一个
if(temp == '(' && s.charAt(i)==')' ||
temp == '{' && s.charAt(i) =='}' ||
temp == '[' && s.charAt(i) == ']') {
continue;
} else {
return false;
}
}
}
return stack.isEmpty();
}
}