题解 | #字符串加密#

字符串加密

http://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3

while True:
    try:
        s = list(input())
        code = list(input())
        #将输入该为大写,方便处理数据,最后输出前再将相应位置改回为小写
        code_up = list(map(lambda x:x.upper(), code))
        #建立正常字母表备用
        chart = []
        for i in range(65,91):
            chart += [chr(i)]
        #将key该为大写,方便处理数据,最后输出前再将相应位置改回为小写
        s_upper = []
        for i in s:
            if i.islower():
                s_upper.append(i.upper())
            else:
                s_upper.append(i)
        #将key去重并按原顺序排列
        s_uniq = sorted(set(s_upper),key=s_upper.index)
        #获得新字母表:1).将s_uniq导入新list;2).利用正常字母表将新字母表剩余部分补充完整
        final_chart = []
        for i in s_uniq:
            final_chart.append(i)
        for i in chart:
            if i not in final_chart:
                final_chart.append(i)
            else:
                pass
        #解码:根据chart和final_chart解码:1).找到chart列表中的对应index;2)根据index在final_chart中解码出原文
        decode = []
        for i in code_up:
            a = chart.index(i)
            decode += final_chart[a]
        #如果原输入中有小写字母,将decode中的对应位置字母小写
        final_text = []
        for i,num in enumerate(code):
            if num.islower():
                  final_text += decode[i].lower()
        final_text = ''.join(final_text)
        
        print(final_text)
        '''
        print(decode)
        print(code)
        print(chart)
        print(final_chart)
        print(type(a))
        print(code_up)
        '''
    except:
        break
全部评论

相关推荐

2024-12-26 13:00
太原理工大学 Java
会飞的猿:简历没啥大问题啊,感觉是缺少了实习经历。多投投先找个中小厂过渡一下吧
点赞 评论 收藏
分享
秋国🐮🐴:拿到你简历编号然后让你知道世间险恶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务