1. 程式人生 > >【Leetcode】252. 用佇列實現棧

【Leetcode】252. 用佇列實現棧

題目描述:

使用佇列實現棧的下列操作:

  • push(x) -- 元素 x 入棧
  • pop() -- 移除棧頂元素
  • top() -- 獲取棧頂元素
  • empty() -- 返回棧是否為空

注意:

  • 你只能使用佇列的基本操作-- 也就是 push to backpeek/pop from frontsize, 和 is empty 這些操作是合法的。
  • 你所使用的語言也許不支援佇列。 你可以使用 list 或者 deque(雙端佇列)來模擬一個佇列 , 只要是標準的佇列操作即可。
  • 你可以假設所有操作都是有效的(例如, 對一個空的棧不會呼叫 pop 或者 top 操作)。

解題思路:

和【232,用佇列實現棧】的方式一樣。

AC程式碼:

class MyStack {
public:
    /** Initialize your data structure here. */
    MyStack() {

    }

    /** Push element x onto stack. */
    void push(int x) {
        std::queue<int> temp_queue;  
        temp_queue.push(x);   
        while(!data_queue.empty())    
        {
            temp_queue.push(data_queue.front());    
            data_queue.pop();
        }
        while(!temp_queue.empty())
        {
            data_queue.push(temp_queue.front());   
            temp_queue.pop();
        }
    }

    /** Removes the element on top of the stack and returns that element. */
    int pop() {     
        int x = data_queue.front(); 
        data_queue.pop();  
        return x;  
    }

    /** Get the top element. */
    int top() {
        return data_queue.front();  
    }

    /** Returns whether the stack is empty. */
    bool empty() {
        return data_queue.empty();  
    }
private:
    std::queue<int> data_queue;   
};

/**
 * Your MyStack object will be instantiated and called as such:
 * MyStack obj = new MyStack();
 * obj.push(x);
 * int param_2 = obj.pop();
 * int param_3 = obj.top();
 * bool param_4 = obj.empty();
 */

相關推薦

Leetcode252. 佇列實現

題目描述: 使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back, peek/

LeetCode 簡單題59-佇列實現

宣告: 今天是第59道題。給定一個整數陣列,判斷是否存在重複元素。以下所有程式碼經過樓主驗證都能在LeetCode上執行成功,程式碼也是借鑑別人的,在文末會附上參考的部落格連結,如果侵犯了博主的相關權益,請聯絡我刪除 (手動比心ღ( ´・ᴗ・` )) 正文 題目:使用佇列實現棧的下列

LeetCode題解225_佇列實現(Implement-Stack-using-Queues)

目錄 描述 解法一:雙佇列,入快出慢 思路 入棧(push) 出棧(pop) 檢視棧頂元素(peek) 是否為空(empty) Java 實現 Python 實現 解法二:雙佇列,入慢出

leetcodePython實現-225.佇列實現

225.用佇列實現棧 描述 使用佇列實現棧的下列操作: push(x) – 元素 x 入棧 pop() – 移除棧頂元素 top() – 獲取棧頂元素 empty() – 返回棧是否為空 注意 你只能使用佇列的基本操

Leetcode232. 實現佇列

題目描述: 使用棧實現佇列的下列操作: push(x) -- 將一個元素放入佇列的尾部。 pop() -- 從佇列首部移除元素。 peek() -- 返回佇列首部的元素。 empty() -- 返回佇列是否為空。 示例: MyQueue queue = new M

C#LeetCode刷題之#225-佇列實現(Implement Stack using Queues)

問題 使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back, peek/pop f

*LeetCode 225. 佇列實現

程式碼:class MyStack { public: queue<int> q1,q2; /** Initialize your data structure here. */ MyStack() { } /** Pu

LeetCode 225. 佇列實現

題目描述 使用佇列實現棧的下列操作: push(x) – 元素 x 入棧 pop() – 移除棧頂元素 top() – 獲取棧頂元素 empty() – 返回棧是否為空 思路 建立兩個佇

LeetCode225 ·佇列實現(C++)

題目描述: 使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back, 

佇列&//佇列實現

使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back,&n

Leetcode225 佇列實現

【方法一】 用一個輔助佇列,每當有元素push進“棧”,則需要把佇列的front位置給它空出來,方便後面直接pop()和top(),因此我們可以做兩次搬家操作,來獲得一個新的佇列: class MyStack { private: queue<int> q; qu

LeetCode18. 4Sum - Java實現

文章目錄 1. 題目描述: 2. 思路分析: 3. Java程式碼: 1. 題目描述: Given an array nums of n integers and an integer target, are there eleme

LeetCode15. 3Sum - Java實現

文章目錄 1. 題目描述: 2. 思路分析: 3. Java程式碼: 1. 題目描述: Given an array nums of n integers, are there elements a, b, c in nums su

LeetCode255佇列實現c++

使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back,&n

Python實現"佇列實現"的一種方法

使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 Example: MyStack stack = new MyStack(); stack.p

225.佇列實現

使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back, peek/pop fro

佇列&//佇列實現

使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 注意: 你只能使用佇列的基本操作-- 也就是 push to back, peek/pop fro

JavaScript localStorage 實現跨瀏覽器tab頁互動

跨瀏覽器tab頁的互動,比如說一個網站有一個模組是通過超連結_blank在一個新tab頁開啟,但是這是點選新tab頁的內容需要網站也有反應,這時就可以運用localStorage。只要是同一個域名下就都能訪問到。 新tab頁裡的表格有個點選事件,點選完後網站頁

[Swift]LeetCode225. 佇列實現 | Implement Stack using Queues

Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack.

225-佇列實現

Description Implement the following operations of a stack using queues. push(x) – Push element x onto stack. pop() – Removes the