LeetCode-020-有效的括号
思路
1.使用栈进行括号匹配
- 如果是左括号,入栈push();
- 如果是右括号,和栈顶进行匹配peek();匹配成功则出栈pop(),匹配失败则返回false;
- 最后检查栈是否为空,非空表示存在没匹配的括号
代码
class Solution {
public boolean isValid(String s) {
Stack<Character> stack=new Stack<>();
for(char c:s.toCharArray()){
if(c=='('||c=='['||c=='{')stack.push(c);
else if(c==')'||c==']'||c=='}'){
if(stack.isEmpty())return false;
if(c==')'&&stack.peek()!='('||
c==']'&&stack.peek()!='['||
c=='}'&&stack.peek()!='{')
return false;
stack.pop();
}
}
return stack.isEmpty();
}
}