凯撒密码在Python

假设我们有一个小写字母字符串s,偏移量为k。我们必须将s中的每个字母替换为字母中沿字母k的位置。我们必须记住,当字母溢出a或z时,它会缠绕在另一侧。

因此,如果输入类似于“ hello”,k = 3,则输出将为“ khoor”

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个功能shift()。这将需要c

  • i:=(c)的ASCII-('a')的ASCII

  • i:= i + k

  • 我:=我mod 26

  • 从ASCII返回字符(ASCII('a')+ i)

  • 从主要方法中,执行以下操作-

  • ret:=对于s中的每个字符c,通过调用shift(c)列出元素列表

  • 返回ret

让我们看下面的实现以更好地理解-

示例

class Solution:
   def solve(self, s, k):
      def shift(c):
         i = ord(c) - ord('a')
         i += k
         i %= 26
         return chr(ord('a') + i)

      return "".join(map(shift, s))

ob = Solution()print(ob.solve("hello", 3))

输入值

"hello", 3

输出结果

khoor