Recca Chao 的 gitHub page

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

View on GitHub

Kotlin Leetcode - 205. Isomorphic Strings

題目連接

class Solution {
    fun isIsomorphic(s: String, t: String): Boolean {
        
    }
}

解題思路

這一題考的是對字串的處理

我們可以用一個 mutableMap

來進行兩個字串的比較

Kotlin 參考解答

class Solution {
    fun isIsomorphic(s: String, t: String): Boolean {
        if (s.toSet().size != t.toSet().size) {
            return false
        }
        val map = mutableMapOf<Char, Char>()
        for (i in s.indices) {
            if (!map.containsKey(s[i])) {
                map[s[i]] = t[i]
            } else if (map[s[i]] != t[i]) {
                return false
            }
        }
        return true
    }
}

或者將裡面的 if-else-if 改用 when

class Solution {
    fun isIsomorphic(s: String, t: String): Boolean {
        if (s.toSet().size != t.toSet().size) {
            return false
        }
        val map = mutableMapOf<Char, Char>()
        label@for (i in s.indices) {
            when {
                !map.containsKey(s[i]) -> map[s[i]] = t[i]
                map[s[i]] != t[i] -> return false
                else -> continue@label
            }
        }
        return true
    }
}

回到 leetcode 列表