牛客--字符串加密

描述

对于给定的字符串 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值