题解 | #字符串加密#

字符串加密

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

思路:创建一个字典,将标准字母表映射到加密字母表

写法1

def encrypt(key, s):
    alphas = ''.join([chr(ord('a')+i) for i in range(26)])
    new_alphas = ""
    for c in key:
        if c not in new_alphas:
            new_alphas += c

    for c in alphas:
        if c not in new_alphas:
            new_alphas += c

    dic = dict(zip(alphas, new_alphas))
    result = "".join([dic.get(c, c) if c.islower() else dic.get(c.lower(), c).upper() for c in s])
    return result


key = input().lower()
s = input()
print(encrypt(key, s))

写法2

letter_list = [chr(ord('a') + i) for i in range(26)]
new_list = []

while True:
    try:
        key = input().lower()
        s = input()

        for i in key:
            if i not in new_list:
                new_list.append(i)

        for j in letter_list:
            if j not in new_list:
                new_list.append(j)

        m = dict(zip(letter_list, new_list))

        res = []
        for c in s:
            if not c.isalpha():
                res.append(c)
            elif c.lower():
                res.append(m[c])
            else:
                res.append(m[c.lower()].upper())
        print(''.join(res))
    except:
        break

【牛客站内】华为机试题解 文章被收录于专栏

【牛客站内】 分享个人刷题的思路和解法

全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务