Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 20. Valid Parentheses

題目連接: https://leetcode.com/problems/valid-parentheses/

class Solution {
    fun isValid(s: String): Boolean {
    }
}

解題思路

這題可以很簡單的用 stack 來進行處理

在 Kotlin 裏面,我們可以用 Deque 來協助我們建立一個 stack

Kotlin 參考解答

class Solution {
    fun isValid(s: String): Boolean {
        var deque = ArrayDeque<Char>()

        for (i in 0..s.length-1) {
            var character = s.get(i)
            println(character)
            if (character == '(' || character == '[' || character == '{')  
            {
                deque.push(character)
                continue; 
            }
            if (deque.isEmpty()) {
                return false; 
            }
            when (character) {
                ')' -> if (deque.getFirst() == '(') {deque.pop()} else { return false }
                ']' -> if (deque.getFirst() == '[') {deque.pop()} else { return false }
                '}' -> if (deque.getFirst() == '{') {deque.pop()} else { return false }
                else -> return false
            }
        }
        if(!deque.isEmpty()){
            return false
        }
        return true
    }
}

回到 leetcode 列表