가장 가까운 글자
str.indexOf(search) - 문자열에서 해당 문자의 인덱스 반환
str.indexOf(search, 5) - 문자열에서 5번째 이후 해당 문자의 인덱스 반환
str.lastIndexOf(search) - 문자열에서 해당 문자의 마지막 인덱스 반환
나의 풀이
class Solution {
fun solution(s: String): IntArray {
var answer: IntArray = intArrayOf()
for (i in 0..s.length-1){
var count = 0
for( j in i downTo 0){
if(i != j && s[i] == s[j]){
answer += i - j
count++
break
}
}
if( count == 0 ){
answer += -1
}
}
return answer
}
}
다른사람 풀이
class Solution {
fun solution(s: String): List<Int> {
return s.withIndex().map { (i, c) -> s.slice(0 until i).lastIndexOf(c).let { if (it >= 0) i - it else -1 } }
}
}
withIndex로 index를 같이 만들어주고 slice로 문자열을 잘라준 후 lastIndexOf(c) 로 문자 c의 마지막 index를 가져와서 있으면 i에 빼주고 없으면 -1 반환