/*
string = “aaa”
After Shifting the first 1 letter by 1 = “baa”
After shifting the first 2 letters by 2 = "dca"
After shifting the first 3 letters 3 = "gfd"
result = "gfd"
*/
function shifLetters(str, shifts) {
const size = shifts.length;
let arr = str.split('');
for (let i = size - 1; i >= 0; i--) {
if (i + 1 < size) {
shifts[i] += shifts[i + 1];
}
shifts[i] = shifts[i] % 26;
let asciicode = str.charAt(i).charCodeAt(0) - 'a'.charCodeAt(0);
asciicode = asciicode + shifts[i];
if (asciicode > 25) {
asciicode = asciicode - 26;
}
arr[i] = String.fromCharCode(('a'.charCodeAt(0) + asciicode));
}
return arr.join("");
}
let str = "aaa";
const shifts = [1, 2, 3];
str = shifLetters(str, shifts);
console.log(str);
/*
run:
gfd
*/