848. Shifting Letters

2021-02-28  本文已影响0人  jluemmmm

输入一个字符串 s 和整数数组 shifts,将字母表中的前i位按照数组中的对应值向右移动 i 位置。主要使用两个API,charCodeAt 和 fromCharCode。

/**
 * @param {string} S
 * @param {number[]} shifts
 * @return {string}
 */
var shiftingLetters = function(S, shifts) {
    if(shifts.length === 0) return S
    let len = shifts.length
    shifts[len - 1] = shifts[len - 1] % 26
    
    for(let i = len - 2; i >= 0; i--) {
        shifts[i] = (shifts[i] + shifts[i + 1]) % 26
    }

    let l = S.length
    let s = S.split('')
    for(let i = 0; i < l; i++) {
        let index = s[i].charCodeAt() + shifts[i]
        
        if(index > 122) {
            index = (index - 97) % 26 + 97
        }
        s[i] = String.fromCharCode(index)
    }
    return s.join('')
};
上一篇下一篇

猜你喜欢

热点阅读