Python 中的凯撒密码

pythonserver side programmingprogramming更新于 2025/11/3 21:00:17

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

因此,如果输入为"hello",k = 3,则输出将为"khoor"

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

  • 定义一个函数 shift()。这将需要 c

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

  • i := i + k

  • i := i mod 26

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

  • 从 main 方法中,执行以下操作 −

  • 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

相关文章


有用资源