使用棧進行簡單括號匹配
阿新 • • 發佈:2021-09-08
''' 棧 實現語言: Python 有次序的資料集, 每個資料僅從棧頂一端加入和從資料集中移除 ''' class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] # 入棧 def push(self, item): self.items.append(item) # 出棧 def pop(self): return self.items.pop() # Peek 偷看;一瞥,看一眼;(計算機)讀取資料 def peek(self): return self.items[len(self.items) - 1] def size(self): return len(self.items) ''' 使用棧進行簡單括號匹配 ''' def matches(open, close): opens = "([{" closers = ")]}" return opens.index(open) == closers.index(close) def parChecker(symbolString): s = Stack() balanced = True index = 0 while index < len(symbolString) and balanced: symbol = symbolString[index] if symbol in "([{": s.push(symbol) else: if s.isEmpty(): balanced = False else: top = s.pop() if not matches(top, symbol): balanced = False index += 1 if balanced and s.isEmpty(): return True else: return False