题解 | #字符串加密#
字符串加密
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专栏练习梳理