Python程序:检查括号是否平衡且格式正确
假设我们有一串括号(圆括号、花括号和方括号),我们需要检查这些括号是否平衡(格式正确)。
因此,如果输入类似于 s = "([()()]{[]})()",则输出为 True
为了解决这个问题,我们将遵循以下步骤:
- stack := 新建一个列表
- d := 一个哈希映射,键值对为 ('}', '{'),(')','('), (']', '[')
- 对于s中的每个字符c,执行:
- 如果c是'\}])'中的任意一个,则
- 如果stack为空或stack的顶部与d[c]不同,则
- 返回False
- 从stack中弹出
- 如果stack为空或stack的顶部与d[c]不同,则
- 否则,
- 将c压入stack
- 如果c是'\}])'中的任意一个,则
- 当stack为空时返回true,否则返回false
让我们看看下面的实现,以便更好地理解:
示例
class Solution: def solve(self, s): stack = [] d = {'}': '{',')': '(',']': '['} for c in s: if c in '}])': if not stack or stack[-1] != d[c]: return False stack.pop() else: stack.append(c) return not stack ob = Solution() print(ob.solve("([()()]{[]})()"))
输入
"([()()]{[]})()"
输出
True
广告