美文网首页
848. Shifting Letters

848. Shifting Letters

作者: jluemmmm | 来源:发表于2021-02-28 15:37 被阅读0次

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

  • 时间复杂度O(N),空间复杂度O(N)
  • Runtime: 96 ms, faster than 67.24%
  • Memory Usage: 44.4 MB, less than 96.55%
/**
 * @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('')
};

相关文章

网友评论

      本文标题:848. Shifting Letters

      本文链接:https://www.haomeiwen.com/subject/rgugfltx.html