题解 | #字符串加解密#

字符串加解密

https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

按照题意嗯模拟就好,其中zZ9的转换问题可以考虑在正常转换过程中使用mod来普适化解决。

def EncryptPw(originalEncryptPw):
    newEncryptPw = ""
    for i in range(len(originalEncryptPw)):
        if originalEncryptPw[i].islower():
            newEncryptPw += chr(ord("A") + ((ord(originalEncryptPw[i].upper()) - ord("A") + 1) % 26))

        elif originalEncryptPw[i].isupper():
            newEncryptPw += chr(ord("a") + ((ord(originalEncryptPw[i].lower()) - ord("a") + 1) % 26))

        elif originalEncryptPw[i].isdigit():
            newEncryptPw += chr(ord("0") + ((ord(originalEncryptPw[i]) - ord("0") + 1) % 10))

        else:
            newEncryptPw += originalEncryptPw[i]

    return newEncryptPw


def DecryptPw(originalDecryptPw):
    newDecryptPw = ""
    for i in range(len(originalDecryptPw)):
        if originalDecryptPw[i].islower():
            newDecryptPw += chr(
                ord("A") + (((ord(originalDecryptPw[i].upper()) - ord("A")) - 1 + 26) % 26))

        elif originalDecryptPw[i].isupper():
            newDecryptPw += chr(
                ord("a") + (((ord(originalDecryptPw[i].lower()) - ord("a")) - 1 + 26) % 26))

        elif originalDecryptPw[i].isdigit():
            newDecryptPw += chr(ord("0") + ((ord(originalDecryptPw[i]) - ord("0") - 1 + 10) % 10))

        else:
            newDecryptPw += originalDecryptPw[i]

    return newDecryptPw


if __name__ == "__main__":
    originalEncryptPw = str(input())
    originalDecryptPw = str(input())

    print(EncryptPw(originalEncryptPw))
    print(DecryptPw(originalDecryptPw))

全部评论

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务