《华为机试》刷题之HJ36 字符串加密

一、题目

在这里插入图片描述

二、示例

在这里插入图片描述

三、代码

letterlist = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 
              'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 
              's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
while True:
    try:
        key = input()
        word = input()
        key1 = []
        for i in key:
            if i not in key1:
                key1.append(i)
        for i in letterlist:
            if i not in key1:
                key1.append(i)
        dic = {}
        for i in range(26):
            dic[letterlist[i]] = key1[i]
        result = ""
        for i in word:
            result += dic[i]
        print(result)
    except:
        break

四、算法说明

  • 建立标准的 26 个字母表letterlist
  • 遍历输入的秘钥key,去除重复的字母,得到新的秘钥列表key1
  • 遍历字母表,将秘钥中没有的字母,按顺序添加到秘钥列表中;
  • 建立字典dic,建立从字母表到秘钥列表的映射字典;
  • 将需要加密的文字,按照字典的对应关系,进行转化,打印输出。

胡萝卜

2022年3月9日21:19:02

我不知道将去向何方,但我已在路上!
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 !
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

O_胡萝卜_O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值