題目描述
三合一。描述如何只用一個數組來實現三個棧。
你應該實現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%的用戶