
LeetCode--020--括号匹配
每次遇到左括号,压入栈。 每次遇到右括号,检查栈是否为空: 遍历完整个字符串后,栈必须为空才表示闭合顺序正确。
发布日期:2025-04-05 02:31:51
浏览次数:10
分类:精选文章
本文共 742 字,大约阅读时间需要 2 分钟。
为了判断一个包含不同类型括号的字符串是否有效,我们可以使用栈数据结构。栈可以帮助我们跟踪括号的顺序,确保每个左括号都能被正确闭合。
输入包括六种括号字符:'('、')'、'{'、'}'、'['、']'。有效字符串要求左括号必须以正确的顺序和类型闭合。具体来说:
- 如果栈为空,字符串无效。
- 如果栈不为空,弹出栈顶字符,检查是否对应正确的左括号。
实现代码:
class Solution: def isValid(self, s: str) -> bool: stack = [] for c in s: if c in '({[': stack.append(c) elif c in ')]}': if not stack: return False top = stack.pop() if (c == ')' and top != '(') or (c == '}' and top != '{') or (c == ']' and top != '['): return False return len(stack) == 0
这个方法通过遍历字符串一次,检查每个字符是否正确闭合,从而确保字符串的有效性。逻辑简单且效率高,时间复杂度为 O(n),其中 n 是字符串的长度。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年05月07日 07时30分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode238-除自身以外数组的乘积
2025-04-05
LeetCode240:Search a 2D Matrix II
2025-04-05
LeetCode268.缺失数字
2025-04-05
LeetCode331.验证二叉树的前序序列化
2025-04-05
leetcode380. Insert Delete GetRandom O(1)
2025-04-05
LeetCode502
2025-04-05
leetcode507
2025-04-05
LeetCode7.整数反转 JavaScript
2025-04-05
Leetcode: Group Anagrams
2025-04-05
Leetcode: Spiral Matrix II
2025-04-05
LeetCode: String to Integer (atoi)
2025-04-05
Leetcode:454. 4Sum II
2025-04-05
LeetCode:Restore IP Addresses
2025-04-05
LeetCode:Subsets I II
2025-04-05
LeetCode——Unique Paths
2025-04-05
LeetCode二叉树从上至下路径问题总结(112.113.437.129)
2025-04-05