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
广告