![JAR search and dependency download from the Maven repository](/logo.png)
g0901_1000.s0953_verifying_an_alien_dictionary.Solution.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-kotlin Show documentation
Show all versions of leetcode-in-kotlin Show documentation
Kotlin-based LeetCode algorithm problem solutions, regularly updated
package g0901_1000.s0953_verifying_an_alien_dictionary
// #Easy #Array #String #Hash_Table #Programming_Skills_I_Day_9_String
// #2023_05_02_Time_137_ms_(100.00%)_Space_35.5_MB_(93.75%)
class Solution {
fun isAlienSorted(words: Array, order: String): Boolean {
val map = IntArray(26)
for (i in order.indices) {
map[order[i].code - 'a'.code] = i
}
for (i in 0 until words.size - 1) {
if (!isSmaller(words[i], words[i + 1], map)) {
return false
}
}
return true
}
private fun isSmaller(str1: String, str2: String, map: IntArray): Boolean {
val len1 = str1.length
val len2 = str2.length
val minLength = len1.coerceAtMost(len2)
for (i in 0 until minLength) {
if (map[str1[i].code - 'a'.code] > map[str2[i].code - 'a'.code]) {
return false
} else if (map[str1[i].code - 'a'.code] < map[str2[i].code - 'a'.code]) {
return true
}
}
return len1 <= len2
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy