牛客--字符串加密
描述
对于给定的字符串 ss ,我们可以利用其进行加密。
具体地,首先先将 ss 进行去重,即如果 ss 中存在重复的字母,则只保留第一次出现的字母。随后,从 "a""a" 开始依次在字符串末尾补充 ss 中未出现的字母,使得 ss 成为一个完整的字母表。
最后,对于给定的明文 tt ,我们利用上述字母表进行加密,即对于 tt 中的每个字母,替换为 ss 构建得到的新字母表中相同位置的字母。
输入描述:
第一行输入一个长度为 1≦length(s)≦1001≦length(s)≦100 ,仅由小写字母构成的字符串 ss ,代表待构建的新字母表底串。
第二行输入一个长度为 1≦length(t)≦1001≦length(t)≦100 ,仅由小写字母构成的字符串 tt ,代表需要加密的明文。
输出描述:
在一行上输出一个字符串,代表加密后的密文。
输入:trailblazers
attackatdawn
输出:tpptadtpitvh
说明:
在这个样例中,加密的操作如下:
对 s 进行去重 得到 trailbzes
随后从 "a" 开始依次在字符串末尾补充 s中未出现的字母,得到 trailbzescdfghjkmnopquvwxy ;
最后,对于 t 中的每个字母,替换为 s 构建得到的新字母表中相同位置的字母。我们可以列出对照表:
[abcdefghijklmnopqrstuvwxyz
trailbzescdfghjkmnopquvwxy]
最后,对于 t 中的每个字母,替换为 s 构建得到的新字母表中相同位置的字母,得到 tpptadtpitvh 。
import sys
b = []
for line in sys.stdin:
a = line.split()
b.extend(a)
origin_s = ''.join(dict.fromkeys(b[0]))
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for i in alphabet:
if i not in origin_s:
origin_s += i
conf_t = b[1]
al = {}
for a,s in zip(alphabet,origin_s):
al[a] = s
result = ''
for j in conf_t:
result += al[j]
print(result)