题解 | #字符串加解密#

字符串加解密

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

分开处理加密和解密。 函数中一次判断是否为数字,编码时最后一个字母(解码时第一个字母),大写字母,小写字母。

def enc(s):
    s = list(s)
    for i in range(len(s)):
        if s[i].isdigit():
            s[i] = str((int(s[i]) + 1) % 10)
        elif s[i] == 'Z':
            s[i] = 'a'
        elif s[i] == 'z':
            s[i] = 'A'
        elif s[i].isupper():
            s[i] = chr(ord(s[i]) + 1 + 32)
        elif s[i].islower():
            s[i] = chr(ord(s[i]) + 1 - 32)
    return ''.join(s)

def dec(s):
    s = list(s)
    for i in range(len(s)):
        if s[i].isdigit():
            s[i] = str((int(s[i]) - 1) % 10)
        elif s[i] == 'a':
            s[i] = 'Z'
        elif s[i] == 'A':
            s[i] = 'z'
        elif s[i].isupper():
            s[i] = chr(ord(s[i]) - 1 + 32)
        elif s[i].islower():
            s[i] = chr(ord(s[i]) - 1 - 32)
    return ''.join(s)

while True:
    try:
        s1, s2 = input(), input()
        d1 = enc(s1)
        e2 = dec(s2)
        print(d1)
        print(e2)
    except:
        break
全部评论

相关推荐

06-23 11:28
门头沟学院 Java
牛客919661971号:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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