【力扣】面試03.01:三合一 | 棧

題目描述

三合一。描述如何只用一個數組來實現三個棧。

你應該實現push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示棧下標,value表示壓入的值。

構造函數會傳入一個stackSize參數,代表每個棧的大小。

算法思路

class TripleInOne:

    def __init__(self, stackSize: int):
        self.ls=[[],[],[]]
        self.limit=stackSize

    def push(self, stackNum: int, value: int) -> None:
        if len(self.ls[stackNum])<self.limit:
            self.ls[stackNum].append(value)

    def pop(self, stackNum: int) -> int:
        if self.ls[stackNum]!=[]:
            return self.ls[stackNum].pop()
        else:
            return -1

    def peek(self, stackNum: int) -> int:
        if self.ls[stackNum]!=[]:
            return self.ls[stackNum][-1]
        else:
            return -1

    def isEmpty(self, stackNum: int) -> bool:
        return self.ls[stackNum]==[]

執行用時 :176 ms, 在所有 Python3 提交中擊敗了87.64%的用戶
內存消耗 :20.9 MB, 在所有 Python3 提交中擊敗了100.00%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章