劍指Offer(五)
用兩個(gè)棧實(shí)現(xiàn)隊(duì)列
題目描述:
用兩個(gè)棧來(lái)實(shí)現(xiàn)一個(gè)隊(duì)列,完成隊(duì)列的Push和Pop操作俊扭。 隊(duì)列中的元素為int類型中剩。
解題思路:
棧1作為PUSH的棧候味,棧2作為POP的棧即可,在棧2不為空的情況下POP棧2洪灯,如果棧2為空坎缭,那么先把棧1中所有元素POP并PUSH進(jìn)棧2,再將棧2POP签钩。
代碼如下:
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1=[]
self.stack2=[]
def push(self, element):
self.stack1.append(element)
# write code here
def pop(self):
if self.stack2 == []:
while self.stack1:
self.stack2.append(self.stack1.pop())
return self.stack2.pop()
return self.stack2.pop()