iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
Software Development

Leetcode 習慣養成之路系列 第 22

Day 22 - 225. Implement Stack using Queues

  • 分享至 

  • xImage
  •  

題目說明

請用 queue 製作一個 stack

解題思路

這一類型的題目,在實作過程中勢必會有一種操作會需要耗費 O(n) 的時間複雜度
以這題為例,會是以 push 時,除了新的元素之外,需要將原本在 queue 裡的東西依序拿出來,再依序放回 queue 裡
讓新放進去的元素出現在最開頭的位置,這樣在 pop 的時候可以直接呼叫 queue 的方法

程式碼

class MyStack:

    def __init__(self):
        self.q1 = deque()

    def push(self, x: int) -> None:
        length = len(self.q1)
        self.q1.append(x)
        while length > 0:
            curr = self.q1.popleft()
            self.q1.append(curr)
            length -= 1
        

    def pop(self) -> int:
        if self.q1:
            
            return self.q1.popleft()
        

    def top(self) -> int:
        if self.q1:
            return self.q1[0]
        

    def empty(self) -> bool:
        return len(self.q1) == 0
        

上一篇
Day 21 - 328. Odd Even Linked List
下一篇
Day 23 - 224. Basic Calculator
系列文
Leetcode 習慣養成之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言