假设我们有一串方括号(圆形,卷曲和正方形),我们必须检查方括号是否平衡(格式正确)。
因此,如果输入类似于s =“([[()()] {[]})()”,则输出将为True
为了解决这个问题,我们将遵循以下步骤-
堆栈:=一个新列表
d:=具有键值对('}','{'),(')','('),(']','[')的哈希映射
对于s中的每个字符c,
将c推入堆栈
如果堆栈为空或堆栈顶部与d [c]不同,则
从堆栈弹出
返回False
如果c是'}])'中的任何一个,则
除此以外,
当堆栈为空时返回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