def pop(self) -> int: if len(self.out_stack) == 0: for i in range(len(self.in_stack)-1, -1, -1): self.out_stack.append(self.in_stack[i]) self.in_stack.pop(i)
return self.out_stack.pop()
def peek(self) -> int: if len(self.out_stack) == 0: for i in range(len(self.in_stack)-1, -1, -1): self.out_stack.append(self.in_stack[i]) self.in_stack.pop(i) return self.out_stack[-1]
def empty(self) -> bool: if len(self.in_stack) == 0 and len(self.out_stack) == 0: return True else: return False # Your MyQueue object will be instantiated and called as such: # obj = MyQueue() # obj.push(x) # param_2 = obj.pop() # param_3 = obj.peek() # param_4 = obj.empty()
注意 list 的 pop 方法,默认是返回并移除最后的元素,如果给一个参数则返回并删除指定 index 位置的元素。而 list 的 remove 方法是删除第一次遇到的指定元素。
# Your MyStack object will be instantiated and called as such: # obj = MyStack() # obj.push(x) # param_2 = obj.pop() # param_3 = obj.top() # param_4 = obj.empty()