class Solution {
public boolean isValid(String s) {
int len = s.length();
if(len % 2== 1) return false;//单数不配对
Stack<Character> stack = new Stack<>();
for(char c : s.toCharArray()){
if(c == '(') {
stack.push(')');
}else if(c == '[') {
stack.push(']');
}else if(c == '{') {
stack.push('}');
}else {
if(stack.isEmpty()) return false;//栈为空,匹配不上
if(stack.peek()!= c) return false; //匹配不对
stack.pop();//当前字符匹配对了,出栈
}
}
return stack.isEmpty();//全部匹配,栈为空
}
}
LeetCode 20. 有效的括号
最新推荐文章于 2024-04-29 10:24:20 发布