华为OD-字符串加密

这篇具有很好参考价值的文章主要介绍了华为OD-字符串加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 题目描述

有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,将所得结果作为新字母表开头,并将新建立的字母表中未出现的字母按照正常字母表顺序加入新字母表。如下所示:

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

T R A I L B Z E S C D F G H J K M N O P Q U V W X Y (实际需建立小写字母的字母表,此字母表仅为方便演示)

上面其他用字母表中剩余的字母填充完整。在对信息进行加密时,信息中的每个字母被固定于顶上那行,并用下面那行的对应字母一一取代原文的字母(字母字符的大小写状态应该保留)。因此,使用这个密匙, Attack AT DAWN (黎明时攻击)就会被加密为Tpptad TP ITVH。

请实现下述接口,通过指定的密匙和明文得到密文。

数据范围:1≤100 1≤n≤100  ,保证输入的字符串中仅包含小写字母

输入描述

先输入key和要加密的字符串

输出描述

返回加密后的字符串文章来源地址https://www.toymoban.com/news/detail-667613.html

示例一

输入


nihao

输出

ni

示例二

输入

le

输出

1,2,3,4,1,2,3,1,2,3,4,5,6

代码实现

# coding:utf-8

import sys

try:
    while True:
        line = sys.stdin.readline().strip()
        if line == '':
            break
        lines = line.split()
        # print(lines)
        s2 = list(lines[0])
        line2 = sys.stdin.readline().strip()
        if line2 == '':
            break
        lines2 = line2.split()
        s1 = list(lines2[0])
        res = []
        lts = ['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']
        lt = ['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']
        # 对秘钥字符串进行去重,并在自然字母表中剔除掉已有的秘钥字符串
        s3 = []
        for i in range(len(s2)):
            if s2[i] in s3:
                continue
            else:
                s3.append(s2[i])
                lt.remove(s2[i])
        # 将秘钥字符串和剔除秘钥的字母表连在一起,行成新的密码表
        s4 = s3 + lt
        # 对需要加密的字符串按照新的密码表进行加密
        for i in range(len(s1)):
            index = lts.index(s1[i])
            res.append(s4[index])
        print(''.join(res))

except:
    pass

到了这里,关于华为OD-字符串加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华为OD机试 - 字符串拼接(Java & JS & Python & C)

    题目描述 给定 M(0 M ≤ 30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为 N(0 N ≤ 5)的字符串, 要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串, 输入非法或者无法拼接出满足条件的字符串则返回0。 输入描

    2024年01月22日
    浏览(68)
  • 字符串压缩加密算法(可逆)

    业务场景:App下单后的订单,需要在另一个内部系统中进行扫码打印。两个程序包括服务器之间网络不互通,所以想到了通过二维码携带内容做数据交互,但是将内容转为base64后发现字符串太长,放入二维码后二维码密度相当大,几乎无法被扫描,所以就想到了给字符串进行

    2024年02月11日
    浏览(47)
  • 华为OD机试 - 字符串化繁为简(Java & JS & Python)

    题目描述 给定一个输入字符串,字符串只可能由英文字母( \\\'a\\\' ~ \\\'z\\\'、\\\'A\\\' ~ \\\'Z\\\' )和左右小括号( \\\'(\\\'、\\\')\\\' )组成。 当字符里存在小括号时,小括号是成对的,可以有一个或多个小括号对,小括号对不会嵌套,小括号对内可以包含1个或多个英文字母,也可以不包含英文字母。

    2024年02月09日
    浏览(51)
  • 【满分】【华为OD机试真题2023 JAVA&JS】字符串重新排序

    知识点排序数组  时间限制:1s 空间限制:256MB 限定语言:不限 给定一个字符串s,s包含以空格分隔的若干个单词,请对s进行如下处理后输出: 1、单词内部调整:对每个单词字母重新按字典序排序; 2、单词间顺序调整:     1)统计每个单词出现

    2023年04月23日
    浏览(60)
  • 【华为OD机考 统一考试机试C卷】字符串变换最小字符串(C++ Java JavaScript Python C语言)

    目前在考C卷,经过两个月的收集整理, C卷真题已基本整理完毕 抽到原题的概率为2/3到3/3, 也就是最少抽到两道原题。 请注意:大家刷完C卷真题,最好要把B卷的真题刷一下,因为C卷的部分真题来自B卷。 另外订阅专栏还可以联系笔者开通在线OJ进行刷题,提高刷题效率。

    2024年02月20日
    浏览(60)
  • 【华为OD机试 】数字字符串组合倒序(C++ Java JavaScript Python)

    华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷)。 你收到的链接上面会标注A卷还是B卷。请注意:根据反馈,目前大部分收到的都是B卷。但是仍有概率抽到A卷。 A卷对应2023的新题库(2022Q4 2

    2024年02月05日
    浏览(48)
  • 华为OD机试 - 分割均衡字符串(Java & JS & Python & C & C++)

    题目描述 均衡串定义:字符串中只包含两种字符,且这两种字符的个数相同。 给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。 约定:字符串中只包含大写的 X 和 Y 两种字符。 输入描述 输入一个均衡串。 字符串的长度:[2, 10000]。 给定的字符串均为均衡字

    2024年03月14日
    浏览(57)
  • 【华为OD机试】第K长字符串(python, java, c++, js)

    前言 :本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于OD机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:nansun0903@163.com;备注:CSDN。 给定一个字符串,只包含大写

    2024年02月11日
    浏览(48)
  • 华为OD机试 - 最长子字符串的长度(一)(Java & JS & Python & C)

    题目描述 给你一个字符串 s,首尾相连成一个环形,请你在环中找出 \\\'o\\\' 字符出现了偶数次最长子字符串的长度。 输入描述 输入是一个小写字母组成的字符串 输出描述 输出是一个整数 备注 1 ≤ s.length ≤ 500000 s 只包含小写英文字母 用例 输入 alolobo 输出 6 说明 最长子字符串

    2024年02月01日
    浏览(43)
  • 华为OD机试真题 Java 实现【对称字符串】【2023Q2 200分】

    对称就是最大的美学,现有一道关于对称字符串的美学。 已知: 第 1 个字符串:R 第 2 个字符串:BR 第 3 个字符串:RBBR 第 4 个字符串:BRRBRBBR 第 5 个字符串:RBBRBRRBBRRBRBBR 相信你已经发现规律了,没错!就是第 i 个字符串 = 第 i - 1 号字符串的取反 + 第 i - 1 号字符串;取反(

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包