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 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.