#include <iostream>
#include <vector>
/*
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"
*/
std::string shifLetters(std::string str, std::vector<int>& shifts) {
int size = str.size();
for (int i = size - 1 ; i >= 0; i--) {
if (i + 1 < size) {
shifts[i] += shifts[i + 1];
}
shifts[i] = shifts[i] % 26;
int asciicode = str[i] - 'a';
asciicode = asciicode + shifts[i];
if (asciicode > 25) {
asciicode = asciicode - 26;
}
str[i] = (char)('a' + asciicode);
}
return str;
}
int main() {
std::string str = "aaa";
std::vector<int> shifts = {1, 2, 3};
str = shifLetters(str, shifts);
std::cout << str;
}
/*
run:
gfd
*/