1. 程式人生 > 其它 >leetcode知識點記錄

leetcode知識點記錄

20.有效的括號

  1. 是一種線性的資料結構
  2. 操作規則:
    1. 只能從一端新增和移除元素--棧頂
    2. 另一段是限制操作的--棧底
  3. 資料管理模式:LIFO後進先出(Last In First Out)
  4. 常用操作:
    1. 儲存資料,稱為“入棧”或“壓棧”(push)
    2. 提取提取,稱為“出棧”或“彈棧”(pop)
  5. 實現:
    1. 通常可用陣列或連結串列實現
    2. 例:功能需求:
    3. 建立一個 Stack 類,具備以下功能:
      1. Stack() - 建立新棧,不需要引數,返回空棧。
      2. push(item) - 將元素新增到棧頂,需要引數,無返回值。
      3. pop() - 刪除棧頂元素,不需要引數,返回棧頂元素,並修改棧的內容。
      4. peek() - 返回棧頂元素,不需要引數,不修改棧的內容。
      5. isEmpty() - 檢查棧是否為空,不需要引數,返回布林值
      6. size() - 返回棧中元素個數,不需要引數,返回整數
    4. 棧與列表的對應操作:
    5. 程式碼:
      class Stack:
          def __init__(self):
              self.stack = []
              self.size = 0
          def push(self, item):
              self.stack.append(item) # 新增元素
              self.size += 1 # 棧元素數量加 1
          def pop(self):
              pop = self.stack.pop() #
      刪除棧頂元素 self.size -= 1 # 棧元素數量減 1 return pop def isEmpty(self): return self.stack == [] def sizes(self): return self.size def peek(self): return self.stack[-1] if __name__ = '__main__': # 這裡假定 A 是 4,B 是 'dog',建議每一步的結果用 print() 輸出看一下 s = Stack() s.isEmpty() s.push(
      4) s.push('dog') s.peek() s.pop() s.isEmpty()