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();
}
}
该博客详细介绍了如何利用栈数据结构解决LeetCode中的有效括号问题。通过遍历输入字符串,遇到左括号则入栈,遇到右括号时与栈顶元素匹配,不匹配则返回false。最后检查栈是否为空,判断是否存在未匹配的括号。此方法简洁高效,是解决括号匹配问题的经典算法。
329

被折叠的 条评论
为什么被折叠?



