문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.
예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.
따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.
문자열 s이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수 solution을 완성해주세요.
s | result |
---|---|
"banana" | [-1, -1, -1, 2, 2, 2] |
"foobar" | [-1, -1, 1, -1, -1, -1] |
lastIndexOf
로 특정 요소의 인덱스를 알아내면 될 듯!-1
을 반환함class Solution {
fun solution(s: String): IntArray {
val answer = mutableListOf<Int>()
val words = s.toCharArray()
for (i in words.indices) {
val temp = words.sliceArray(0 until i)
val last = temp.lastIndexOf(word[i])
if (last == -1) {
answer.add(-1)
} else {
answer.add(i - last)
}
}
return answer.toIntArray()
}
}