zoukankan      html  css  js  c++  java
  • 面试题 03.04. 化栈为队

    地址:https://leetcode-cn.com/problems/implement-queue-using-stacks-lcci/

    <?php
    /**
     * Created by PhpStorm.
     * User: huahua
     * Date: 2020/6/19
     * Time: 下午4:27
     */
    
    /**
    
    实现一个MyQueue类,该类用两个栈来实现一个队列。
    
    
    示例:
    
    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 操作)。
     */
    class MyQueue {
        /**
         * Initialize your data structure here.
         */
        private $queue;
        function __construct() {
            $this->queue= [];
        }
    
        /**
         * Push element x to the back of queue.
         * @param Integer $x
         * @return NULL
         */
        function push($x) {
            $this->queue[] = $x;
        }
    
        /**
         * Removes the element from in front of queue and returns that element.
         * @return Integer
         */
        function pop() {
            foreach($this->queue as $key =>$value){
                $pop = $value;
                unset($this->queue[$key]);
                break;
            }
            return $pop;
        }
    
        /**
         * Get the front element.
         * @return Integer
         */
        function peek() {
            foreach($this->queue as $value){
                return $value;
            }
        }
    
        /**
         * Returns whether the queue is empty.
         * @return Boolean
         */
        function empty() {
            return empty($this->queue);
        }
    }
    
    /**
     * Your MyQueue object will be instantiated and called as such:
     * $obj = MyQueue();
     * $obj->push($x);
     * $ret_2 = $obj->pop();
     * $ret_3 = $obj->peek();
     * $ret_4 = $obj->empty();
     */
  • 相关阅读:
    [JSOI2007][BZOJ1031] 字符加密Cipher|后缀数组
    leetcode Flatten Binary Tree to Linked List
    leetcode Pascal's Triangle
    leetcode Triangle
    leetcode Valid Palindrome
    leetcode Word Ladder
    leetcode Longest Consecutive Sequence
    leetcode Sum Root to Leaf Numbers
    leetcode Clone Graph
    leetcode Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/8013-cmf/p/13163753.html
Copyright © 2011-2022 走看看