1class MinStack:2 def __init__(self):3 self.stack = [] # (val, min) pairs4 def push(self, val):5 if not self.stack:6 cur_min = val7 else:8 cur_min = min(val, self.stack[-1][1])9 self.stack.append((val, cur_min))10 def pop(self):11 self.stack.pop()12 def top(self):13 return self.stack[-1][0]14 def getMin(self):15 return self.stack[-1][1]