在 Python 中以给定数量的位置移动字符后获取最终字符串的程序
假设我们有一个小写字符串s和另一个称为shifts的整数列表,其长度与s的长度相同。这里shifts[i]中的每个元素表示将s的前i+1个字母移动shifts[i]位置。如果移位穿过'z',它将被包装到'a'。我们必须在对s应用移位后找到结果字符串。
因此,如果输入类似于s="tomato"shifts=[2,5,2,3,7,4],那么输出将是"qjcoes"因此,在将第一个字符移动2个位置后,它将是't'到'v',所以字符串是“vomato”,然后是前两个字符5位。字符串现在将是“atmato”,最终字符串将是“qjcoes”。
示例
让我们看看以下实现以获得更好的理解-
def solve(s, shifts):
start = ord("a")
res = [ord(i) - start for i in s]
for i in range(len(shifts) - 2, -1, -1):
shifts[i] += shifts[i + 1]
for i in range(len(s)):
c = (res[i] + shifts[i]) % 26
res[i] = chr(c + start)
return "".join(res)
s = "tomato"
shifts = [2, 5, 2, 3, 7, 4]
print(solve(s, shifts))输入
[2, 1], 3, 2输出结果
qjcoes