在Python中,通过给定位置后移字符来获取最终字符串的程序

在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”。

要解决此问题,我们将按照以下步骤执行 –

  • start:ASCII“a”
  • res:一个ASCII的列表,其中每个i在s中
  • 对于i in range size of shifts – 2 to 0,请减少1
    • shifts [i]:= shifts [i] + shifts [i + 1]
  • 对于i in range 0 to size of s-1,进行操作
    • c:=(res [i] + shifts [i])mod 26
    • res [i]:= ASCII(c + start)的字符
  • 将字母res连接成字符串并返回

例子

让我们看一下以下实现,以获得更好的理解:

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 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程