题解 | #字符串加解密#

字符串加解密

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

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

相关推荐

11-15 21:21
已编辑
重庆邮电大学 测试工程师
第一个offer竟然是康子给的!要不要先签了保底,纠结😣
offer五面十方来:恭喜恭喜,这是我最想去的base和岗了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务