Problem From.
https://leetcode.com/problems/verifying-an-alien-dictionary/
오늘 문제는 알파벳 모음 words 배열과 알파벳의 순서 order 문자열이 주어졌을때, order 를 활용하여 words 가 사전순으로 나열되어있는지 아닌지 확인하는 문제였다.
문제풀이는 간단하게 words 의 배열을 앞에서부터 두개씩 비교해나가며, 각 자리의 문자가 사전순으로 되어있는지 확인하였다. 만약 모든 문자가 똑같은데 앞의 문자가 뒤의 문자보다 길다면, 사전순으로 뒤에 있는게 되므로 false 를 리턴해야 했다.
class Solution {
fun isAlienSorted(words: Array<String>, order: String): Boolean {
for(i in 0 until words.size - 1) {
var index = 0
var next = false
while(index < words[i].length && index < words[i+1].length && !next) {
if(order.indexOf(words[i][index]) > order.indexOf(words[i+1][index])) return false
if(order.indexOf(words[i][index]) < order.indexOf(words[i+1][index])) next = true
index += 1
}
if(!next && words[i].length > words[i+1].length) return false
}
return true
}
}