题解 | #字符串加解密#

字符串加解密

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

# 处理过程
def process_data(target, isencrypt=True):
    res = []
    for item in target:
        if item.isalpha():
            if isencrypt:
                if item.islower():
                    if ord(item) ==122:
                        res.append(chr(97).upper())
                    else:
                        res.append(chr(ord(item)+1).upper())
                if item.isupper():
                    if ord(item.lower()) ==122:
                        res.append(chr(97))
                    else:
                        res.append(chr(ord(item.lower())+1))
            else:
                if item.islower():
                    if ord(item) ==97:
                        res.append(chr(122).upper())
                    else:
                        res.append(chr(ord(item)-1).upper())
                if item.isupper():
                    if ord(item.lower()) ==97:
                        res.append(chr(122))
                    else:
                        res.append(chr(ord(item.lower())-1))
        elif item.isdigit():
            if isencrypt:
                if int(item) == 9:
                    res.append('0')
                else:
                    res.append(str(int(item) + 1))
            else:
                if int(item) == 0:
                    res.append('9')
                else:
                    res.append(str(int(item) - 1))
        else:
            res.append(item)
    return ''.join(res)
# 加密
def encrypt(target):
    return process_data(target)
# 解密
def decrypt(target):
    return process_data(target, False)

print(encrypt(input()))
print(decrypt(input()))

#字符串加解密#
全部评论

相关推荐

06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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