zoukankan      html  css  js  c++  java
  • Stack & Queue

    232. Implement Queue using Stacks
    FILO to FIFO
    MyQueue queue = new MyQueue();
    
    queue.push(1);
    queue.push(2);  
    queue.peek();  // returns 1
    queue.pop();   // returns 1
    queue.empty(); // returns false

    class MyQueue:
    
        def __init__(self):
            self.s1 = []
            self.s2 = []
    
        def push(self, x: int) -> None:
            while self.s1:
                self.s2.append(self.s1.pop())
            self.s1.append(x)
            while self.s2:
                self.s1.append(self.s2.pop())
    
        def pop(self) -> int:
            return self.s1.pop()
    
        def peek(self) -> int:
            return self.s1[-1]
                        
        def empty(self) -> bool:
            return not self.s1
    
    
    # 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()
    Queue push O(n) pop O(1) peek O(1)
    class MyQueue:
    
        def __init__(self):
            self.s1 = []
            self.s2 = []
    
        def push(self, x: int) -> None:
            self.s1.append(x)
    
        def pop(self) -> int:
            self.peek()
            return self.s2.pop()
    
        def peek(self) -> int:
            if not self.s2:
                while self.s1:
                    self.s2.append(self.s1.pop())
            return self.s2[-1]
    
        def empty(self) -> bool:
            return not self.s1
    Queue push O(1) pop O(1) peek O(n)
    225. Implement Stack using Queues
    FIFO to FILO
    MyStack stack = new MyStack();
    
    stack.push(1);
    stack.push(2);  
    stack.top();   // returns 2
    stack.pop();   // returns 2
    stack.empty(); // returns false
     
    class Stack:
    
        def __init__(self):
            self._queue = collections.deque()
    
        def push(self, x):
            q = self._queue
            q.append(x)
            for _ in range(len(q) - 1):
                q.append(q.popleft())
            
        def pop(self):
            return self._queue.popleft()
    
        def top(self):
            return self._queue[0]
        
        def empty(self):
            return not len(self._queue)
    Stack
  • 相关阅读:
    汇编写启动代码之关看门狗、设置栈、调用C、开关icache
    ARM汇编伪指令
    多寄存器访问、后缀、栈、!、^
    协处理器CP15操作指令
    常用的ARM指令
    汇编指令及其特点
    ARM的37个寄存器以及异常处理方法
    一步步点亮LED之汇编点亮LED
    机器学习_第一节_numpy
    函数进阶_生成器
  • 原文地址:https://www.cnblogs.com/ybxw/p/12763309.html
Copyright © 2011-2022 走看看