您好,登錄后才能下訂單哦!
使用棧實現隊列的下列操作:
push(x) -- 將一個元素放入隊列的尾部。
pop() -- 從隊列首部移除元素。
peek() -- 返回隊列首部的元素。
empty() -- 返回隊列是否為空。
示例:
MyQueue?queue?=?new?MyQueue(); queue.push(1); queue.push(2);?? queue.peek();??//?返回?1 queue.pop();???//?返回?1 queue.empty();?//?返回?false
說明:
你只能使用標準的棧操作 -- 也就是只有?push to top
,?peek/pop from top
,?size
, 和?is empty
?操作是合法的。
你所使用的語言也許不支持棧。你可以使用 list 或者 deque(雙端隊列)來模擬一個棧,只要是標準的棧操作即可。
假設所有操作都是有效的 (例如,一個空的隊列不會調用 pop 或者 peek 操作)。
from?collections?import?deque class?Stack: ????def?__init__(self): ????????self.items?=?deque() ????def?push(self,?val): ????????return?self.items.append(val) ????def?pop(self): ????????return?self.items.pop() ????def?top(self): ????????return?self.items[-1] ????def?empty(self): ????????return?len(self.items)?==?0 class?MyQueue: ????def?__init__(self): ????????""" ????????Initialize?your?data?structure?here. ????????""" ????????self.s1?=?Stack() ????????self.s2?=?Stack() ????def?push(self,?x:?int)?->?None: ????????""" ????????Push?element?x?to?the?back?of?queue. ????????""" ????????self.s1.push(x) ????def?pop(self)?->?int: ????????""" ????????Removes?the?element?from?in?front?of?queue?and?returns?that?element. ????????""" ????????if?not?self.s2.empty(): ????????????return?self.s2.pop() ????????while?not?self.s1.empty(): ????????????val?=?self.s1.pop() ????????????self.s2.push(val) ????????return?self.s2.pop() ????def?peek(self)?->?int: ????????""" ????????Get?the?front?element. ????????""" ????????if?not?self.s2.empty(): ????????????return?self.s2.top() ????????while?not?self.s1.empty(): ????????????val?=?self.s1.pop() ????????????self.s2.push(val) ????????return?self.s2.top() ????def?empty(self)?->?bool: ????????""" ????????Returns?whether?the?queue?is?empty. ????????""" ????????return?self.s1.empty()?and?self.s2.empty() #?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()
執行用時 :?52 ms, 在Implement Queue using Stacks的Python3提交中擊敗了73.85% 的用戶
內存消耗 :?13.2 MB, 在Implement Queue using Stacks的Python3提交中擊敗了42.13% 的用戶
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。