在 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