#include <stdio.h>
#include <string.h>
/*
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"
*/
char* shifLetters(char* str, int* shifts, int 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() {
char str[] = "aaa";
int shifts[] = {1, 2, 3};
int size = strlen(str);
shifLetters(str, shifts, size);
printf("%s", str);
return 0;
}
/*
run:
gfd
*/