注意加和的数字要Mod 26,以及之后和当前字母的ord值加和后要减去a的ord值然后再Mod 26再加a的ord值,并转化回字母去。
class Solution:
def shiftingLetters(self, s: str, shifts: List[int]) -> str:
shifts = shifts[::-1]
prefix = [shifts[0]]
for i in range(1, len(shifts)):
prefix.append(prefix[-1] + shifts[i])
prefix = prefix[::-1]
print(prefix)
res = ''
for idx, char in enumerate(s):
#temp = (ord(char) + (prefix[idx]%26)
#while temp > ord('z')
res += chr(ord('a') + (ord(char) + (prefix[idx]%26) - ord('a') )%26)
return res