平臺
牛客網
語言
python2.7.3
作業內容
題目描述
用兩個棧來實現一個隊列, 完成隊列的 Push 和 Pop 操作。 隊列中的元素爲 int 類型。
題目理解
什麼是棧?
棧(有時稱爲 “後進先出棧”)是一個項的有序集合,這種排序原則有時被稱爲 LIFO(後進先出), 其中添加移除新項總髮生在同一端。這一端通常稱爲 “頂部”。與頂部對應的端稱爲 “底部”。
什麼是隊列?
隊列是項的有序結合,其中添加新項的一端稱爲隊尾,移除項的一端稱爲隊首。這種排序原則有時被稱爲 FIFO(先進先出)當一個元素從隊尾進入隊列時,一直向隊首移動,直到它成爲下一個需要移除的元素爲止。
push:將元素放進隊尾
pop: 將隊頂的元素刪除,並返回
解題思路
定義棧
定義 push 和 pop 函數
程序
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stack1 = [] #定義兩個stack,
self.stack2 = []
def push(self, node):
self.stack1.append(node) #往隊列中添加元素,將元素放進隊尾
def pop(self): # 沒看懂啊
if len(self.stack2):
return self.stack2.pop()
while(self.stack1):
self.stack2.append(self.stack1.pop())
return self.stack2.pop()