[LeetCode] 2399. Check Distances Between Same Letters

Chobby·2025년 10월 28일
1

LeetCode

목록 보기
727/769

😎풀이

  1. s 순회
    1-1. 현재 문자가 이전 등장하지 않았다면, 처음 등장 시점의 인덱스 기록
    1-2. 이전 등장했다면, 이전 인덱스에서 현재 인덱스 - 1을 뺀 실제 거리를 계산
    1-3. 해당 알파벳의 유효 거리를 계산
    1-4. 실제 거리와 동등비교 일치하지 않는다면, false 반환
  2. 모든 단어가 distance에 해당하는 거리를 유지하므로 true 반환
function checkDistances(s: string, distance: number[]): boolean {
    const map = new Map()
    for(let i = 0; i < s.length; i++) {
        const cur = s[i]
        if(!map.has(cur)) {
            map.set(cur, i)
            continue
        }
        const prevIdx = map.get(cur)
        const gap = i - prevIdx - 1
        const curCodeIdx = cur.charCodeAt(0) - 97
        const curDist = distance[curCodeIdx]
        if(gap !== curDist) return false
    }
    return true
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글