题解 | #字符串加密#

字符串加密

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专栏练习梳理

全部评论

相关推荐

3 2 评论
分享
牛客网
牛客企业服务