---
# System prepended metadata

title: 232. Implement Queue using Stacks

---

# 232. Implement Queue using Stacks

https://leetcode.com/problems/implement-queue-using-stacks/

## 思路：
1. 不太清楚網友的解法跟自己的差別，雖然我用pop(0)也是O(n) 但是他直接用for loop 也是O(n)阿

## 我自己的解法
```python=
class MyQueue:

    def __init__(self):
        self.list=[]
        

    def push(self, x: int) -> None:
        self.list.append(x)

    def pop(self) -> int:
        
       
        
        return self.list.pop(0)

    def peek(self) -> int:
        
        
        
        return self.list[0]

    def empty(self) -> bool:
        
        if not self.list :
            return True 
        else :
            return False 

                
                
                # 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()
```

## 網友的解法
```python=
class MyQueue(object):
    def __init__(self):
        self.in_stk = []
        self.out_stk = []
	# Push element x to the back of queue...
    def push(self, x):
        self.in_stk.append(x)
	# Remove the element from the front of the queue and returns it...
    def pop(self):
        self.peek()
        return self.out_stk.pop()
	# Get the front element...
    def peek(self):
        if not self.out_stk:
            while self.in_stk:
                self.out_stk.append(self.in_stk.pop())
        return self.out_stk[-1]
	# Return whether the queue is empty...
    def empty(self):
        return not self.in_stk and not self.out_stk
```