1. 程式人生 > >演算法:棧的使用、原理及案例

演算法:棧的使用、原理及案例

特點:後進先出 (last-in,first-out)

  • 進棧(壓棧):push
  • 出棧:pop
  • 取棧頂: gettop

運用:棧進行括號匹配

class Stack:

    def __init__(self):
        self.stack = []

    def push(self, element):
        self.stack.append(element)

    def pop(self):
        return self.stack.pop()

    def get_top
(self): if len(self.stack) > 0: return self.stack[-1] else: return None def is_empty(self): return len(self.stack) == 0 def brace_match(s): match = {'}': '{', ']': "[", ')': '('} stack = Stack() for ch in s: if ch in {'(', '['
, '{'}: stack.push(ch) else: # ch in {'}',']',')'} if stack.is_empty(): return False elif stack.get_top() == match[ch]: stack.pop() else: # stack.get_top() != match[ch] return False if stack.
is_empty(): return True else: return False print(brace_match('[{()}(){()}[]({}){}]')) print(brace_match('[]}'))