Python 中的凱撒密碼


假設我們有一個小寫字母字串 s 和一個偏移數字 k。我們需要將 s 中的每個字母替換為字母表中後移 k 個位置的字母。我們需要記住,當字母超出 a 或 z 時,它會在另一側換行。

因此,如果輸入類似於“hello”,k = 3,則輸出將為“khoor”

要解決此問題,我們將按照以下步驟進行 −

  • 定義一個 shift() 函式。它將獲取 c

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

  • i := i + k

  • i := i 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

更新於:2020 年 9 月 2 日

1K+ 次瀏覽

職業進階

透過完成課程取得認證

開始
廣告
© . All rights reserved.