題目描述
用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。
# -*- coding:utf-8 -*-
class Solution:
def push(self, node):
# write code here
def pop(self):
# return xx
思路:
棧 : 後進先出
隊列:先進先出
# -*- coding:utf-8 -*-
class Solution:
stack = [] # 存儲棧
assist_stack = [] # 輔助棧
def push(self, node):
# write code here
self.stack.append(node) # 存儲棧 加入元素
def pop(self):
# return xx
while self.stack: # 當存儲棧中有元素
# 將存儲棧末尾元素存入輔助棧 (後進先出)
self.assist_stack.append(self.stack.pop())
if self.assist_stack:
return self.assist_stack.pop() # 輔助棧 將結果 先進後出
# -*- coding:utf-8 -*-
class Solution:
stack = [] # 存儲棧
assist_stack = [] # 輔助棧
def push(self, node):
# write code here
self.stack.append(node) # 存儲棧 加入元素
def pop(self):
# 由於所有元素都存入輔助棧,且pop() 函數每次只彈出一個元素
if self.assist_stack: # 當輔助棧中存在元素時
return self.assist_stack.pop() # 輔助棧將結果彈出 (先進後出)
while self.stack: # 當存儲棧中有元素
# 將存儲棧末尾元素存入輔助棧 (後進先出)
self.assist_stack.append(self.stack.pop())
if self.assist_stack:
return self.assist_stack.pop() # 輔助棧 將結果 先進後出