TIL #13

loci·2024년 5월 13일
0

TIL

목록 보기
13/111

가장 가까운 글자

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 반환

profile
편리한 개발자

0개의 댓글