题解 | #字符串加密#

字符串加密

https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3?tpId=37&tqId=21259&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

import sys


'''
先生成26个字母,将key中出现的字母删除构成字母表
'''
key = input()
clear_test = input()

def StructKey(key,clear_test):
    '''
    以key为基础构造
    '''
    L = []
    L4 = []
    for i in range(ord("a"),ord("z")+1):
        L.append(chr(i))
    
    #生成一份从a到z的字母表,并不被L改变
    L3 =L.copy()


    #去除L中包含key中的字母

    for i in key:
        if i in L:
            L.remove(i)
    #对key进行去重

#key=list(set(key))
    #key="".join(key)
    for i in key:
        if i not in L4:
            L4.append(i)
    key= "".join(L4)
    
    #生成字母表
    alphapet = key+"".join(L)
    alphapet = list(alphapet)

    c = zip(L3,alphapet)

    #遍历并存入字典中
    dict1={}

    for i in c:
        dict1[i[0]]=i[1]
    #print(len(dict1)) 

    #明文中可能带有空格
    clear_test_list = clear_test.split()
    

    res=""

    for x in clear_test_list:
        res+=" "
        for i in x:
            res+=dict1[i]
    
#输出的时候去掉空格
    print(res.strip())
'''
调用StructKey
'''
StructKey(key,clear_test)

全部评论
易错的地方,对Key忘记给它去重。还有在删除L中的包含Key的元素时重复删除
点赞 回复 分享
发布于 2023-02-28 12:22 广东
1明文中可能带有空格,需要先处理空格, 2然后输出密文的时候加上空格, 3然后需要去除掉res的首部空格
点赞 回复 分享
发布于 2023-02-28 12:24 广东

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
没有offer的小土豆:专业面试一般是分配面试官然后联系你面试 应该是还没给你分配对应面试官
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务