题解 | #字符串加解密#

字符串加解密

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))

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
牛客85811352...:1希音不知道算不算大厂 2完全符合,过得很舒服, 3确实只有杂活 领导找我续签到明年3、4月我要继续吗。主要是边实习边秋招这段时间还是有点累
什么是优秀的实习经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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