Recca Chao 的 gitHub page

推廣網站開發,包含 Laravel 和 Kotlin 後端撰寫、自動化測試、讀書心得等。Taiwan Kotlin User Group 管理員。

View on GitHub

Kotlin Leetcode - 225. Implement Stack using Queues

題目連接

class MyStack() {

    fun push(x: Int) {
        
    }

    fun pop(): Int {
        
    }

    fun top(): Int {
        
    }

    fun empty(): Boolean {
        
    }

}

解題思路

這一題考的是對 stack 和 queue 的理解

利用 ArrayDeque 我們可以很簡單的實作這段演算法

Kotlin 參考解答

class MyStack() {
    private val first: Queue<Int> = ArrayDeque<Int>()
    private val second: Queue<Int> = ArrayDeque<Int>()

    fun push(x: Int) {
        while (first.isNotEmpty()) second.add(first.poll())
        first.add(x)
        while (second.isNotEmpty()) first.add(second.poll())
    }

    fun pop(): Int {
        return first.poll()
    }

    fun top(): Int {
        return first.peek()
    }

    fun empty(): Boolean {
        return first.isEmpty()
    }
}

回到 leetcode 列表