Python程序:检查括号是否平衡且格式正确


假设我们有一串括号(圆括号、花括号和方括号),我们需要检查这些括号是否平衡(格式正确)。

因此,如果输入类似于 s = "([()()]{[]})()",则输出为 True

为了解决这个问题,我们将遵循以下步骤:

  • stack := 新建一个列表
  • d := 一个哈希映射,键值对为 ('}', '{'),(')','('), (']', '[')
  • 对于s中的每个字符c,执行:
    • 如果c是'\}])'中的任意一个,则
      • 如果stack为空或stack的顶部与d[c]不同,则
        • 返回False
      • 从stack中弹出
    • 否则,
      • 将c压入stack
  • 当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

更新于:2020年10月6日

239 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告