假设我们有一串方括号(圆形,卷曲和正方形),我们必须检查方括号是否平衡(格式正确)。
因此,如果输入类似于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