class Solution {
public boolean isValid(String s) {
Stack <Character> stack = new Stack<>();
if(s.length() % 2 == 1){
return false;
}
char[] arrays = s.toCharArray();
for(int i = 0; i<arrays.length; i++){
//判断时直接将左括号对应的右括号压栈
if(arrays[i] == '('){
stack.push(')');
}else if(arrays[i] == '{'){
stack.push('}');
}else if(arrays[i] == '['){
stack.push(']');
}else{
if(stack.empty()){
//防止字符串第一个元素就是右括号,导致没有栈顶元素可以导出,出现空指针异常
return false;
}else if(stack.peek() == arrays[i]){
stack.pop();
}
}
}
return stack.empty();
}
}
leetcode(第二十题 有效的括号)
最新推荐文章于 2020-11-07 21:19:11 发布