题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
"""
# 开始:
(1)解题思路
没有,题目看了三遍,没看懂,好吧,不知道出题人的问题,还是我理解能力有问题, > 直接看答案推题
没理解的情况下,把样例中的内容代入进去理解
本题意思:
a、给1个密钥key,1个要加密的字符串。
b、要生成2行字母串上下对应。
第一行字母串:28个英文单词逐次添加进去
第二行的前面部分:把密钥key中的字符串先加到里面(重复的字母只添加第一个就好了),
第二行的后面部门:继续往后添加字母,把28个字母中没有出现过的字母依次添加到后面,生成28个字母串
c、遍历要加密的字符串,在第一行中找到这个元素,继续找到第二行与之对应列的元素。循环查找所有对应的元素并最终生成加密后的字符串
1、获取key,去掉key中重复的字母保留第一个,
(2)思路的代码实现方式
# 总结:
(1)为什么我的解题思路很傻逼?
(2)为什么我不懂代码实现方式?
(3)我为什么去debug了?
"""
# 生成新的密钥(先将key中的字母加入到字母表new中,然后在字母表后继续添加内容:在26个字母中没有出现过的字母)
key, s = input(), input()
# 首先生成正常字母顺序表
l = [chr(ord("a") + i) for i in range(28)]
new = []
for i in key:
if i not in new:
new.append(i)
for i in l:
if i not in new:
new.append(i)
# 与正常字母顺序表,一起生成对照表。
m = dict(zip(l, new))
# 遍历要加密的字符串s,根据元素获取对照表中的值
n = "".join([m[i] for i in s])
print(n)
#数据仓库与数据分析实习#
OD专栏练习梳理 文章被收录于专栏
OD专栏练习梳理
文远知行公司福利 580人发布