切換
舊版
前往
大廳
主題

LeetCode - 232. Implement Queue using Stacks 解題心得

Not In My Back Yard | 2020-09-19 23:17:17 | 巴幣 2 | 人氣 176

題目連結:


題目意譯:
使用堆疊(Stack)實作佇列(Queue)的下列操作。

push(x) —— 將元素 x 推到佇列的尾端。
pop() —— 將佇列前端的元素移除。
peek() —— 取得前端元素之值。
empty() —— 回傳佇列是否為空。

注:
你只能使用堆疊的標準操作——意即放入堆疊頂端、查看/移除頂端的元素、查看大小以及判斷是否為空等操作是唯一允許的。

根據你所使用的程式語言,堆疊可能沒有直接的支援。取而代之的,你可以使用列表(List)或是雙端佇列(Deque 或稱 Double-ended queue)來模擬一個堆疊,但仍只能使用堆疊的標準操作。

你可以假設所有操作是合法的(例如,不會有 pop 或是 peek 操作在佇列為空時呼叫)。



範例測資:
MyQueue queue = new MyQueue();

queue.push(1);
queue.push(2);  
queue.peek();  // returns 1
queue.pop();   // returns 1
queue.empty(); // returns false


解題思維:
參見此題的作法,因為兩題相當雷同。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作