題目:定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。在該棧中,調用min、push、pop的時間複雜度都是O(1)
class Solution:
def __init__(self):
self.stack = [] # 數據棧
self.minStack = [] # 輔助棧
def push(self, node):
self.stack.append(node)
if self.minStack==[] or node<self.min():
self.minStack.append(node)
else:
temp = self.min()
self.minStack.append(temp)
def pop(self):
if self.stack or self.minStack==[]:
return None
self.stack.pop()
self.minStack.pop()
def top(self):
return self.stack[-1]
def min(self):
return self.minStack[-1]