python 中使用 Vigenere 密碼加密字串的程式
假設我們有一個小寫字母字串 text,並且有另一個字串 key。我們要找到一個新字串,其中 text[i] 的每一個字母都向右移動,偏移量為 key[i]。這裡偏移量由 key[i] 在字母表中的位置表示 (A=0,B=1 等)。如果字母溢位,則環繞到另一側。
因此,如果輸入類似於 text =“code”,key =“team”,那麼輸出將是“vsdq”
要解決此問題,我們將按照以下步驟進行操作 -
- cip := 一個新列表
- start := 'a' 的 ASCII 碼
- 對於 text 中的每個 l 和 key 中的 k,執行
- shift := (k 的 ASCII 碼) - start
- pos := start +((l 的 ASCII 碼) - start + shift) mod 26
- 在 cip 的末尾插入 pos 的字元
- 連線 cip 的字串並返回
讓我們看看以下實現以獲得更好的理解 -
示例
class Solution:
def solve(self, text, key):
cip = []
start = ord('a')
for l, k in zip(text, key):
shift = ord(k) - start
pos = start + (ord(l) - start + shift) % 26
cip.append(chr(pos))
return ''.join([l for l in cip])
ob = Solution()
text = "code"
key = "team"
print(ob.solve(text, key))輸入
"code", "team"
輸出
vsdq
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP