LeetCode - 1309. Decrypt String from Alphabet to Integer Mapping

henu·2023년 10월 1일
0

LeetCode

목록 보기
93/186

Solution

var freqAlphabets = function(s) {
    let result = ''

    for(let i=0; i<s.length;) {
        if(s[i+2] === '#') {
            result += String.fromCharCode(+(s[i] + s[i+1]) + 96)
            i+=3
        } else {
            result += String.fromCharCode(+s[i] + 96)
            i++
        }
    }

    return result
};

Explanation

이 문제를 해결하기 위한 가장 중요한 포인트는 1~910#~26#을 구분하는 것이다.
한 자리 수인지 아니면 세 자리 수인지를 구별할 수 있어야한다.
구별하기 위해서 현재 인덱스 + 2의 값이 #인지 아닌지 확인해야한다.
#일 경우, 세 자리 수이므로 현재 인덱스와 다음 인덱스의 값의 합에 96를 더하고 fromCharCode 메소드를 이용해서 알파벳으로 변환한다.
여기서 주의할 점은 변환 후 세 자리 수를 변환한 것이기 때문에 포인터(i)를 +3 시켜줘야한다.
#이 아닐 경우는 간단하게 현재 인덱스의 값에 96를 더해서 변환해 주면 된다.

0개의 댓글