天天看點

華為筆試:字元串加密(python版)

1、題目描述

華為筆試:字元串加密(python版)
華為筆試:字元串加密(python版)

2、代碼及思路

# coding;utf-8;
"""分兩種情況:主要思想是字元與ascii碼之間的轉換(1)加密:在A-Y,轉為相應的ascii+1,然後chr函數轉為字元,對于特殊的
Z,直接輸出a,在a-y轉為相應的ascii+1,然後chr函數轉為字元,對于特殊的z,直接輸出A;
(2)解密:在B-Z,轉為相應的ascii-1,然後chr函數轉為字元,對于特殊的
A,直接輸出z,在b-z轉為相應的ascii-1,然後chr函數轉為字元,對于特殊的a,直接輸出Z;"""
while True:
    try:
        yjm = input()
        yjgm = input()
        jiam = []
        jiem = []
        for s in yjm:
            if 97 <= ord(s) < 122:
                jiam.append(chr(ord(s.upper()) + 1))
                # print(chr(ord(s.upper()) + 1), end='')
            if s == 'z':
                jiam.append('A')
                # print('A', end='')
            if 48 <= ord(s) < 57:
                jiam.append(chr(ord(s) + 1))
                # print(chr(ord(s) + 1), end='')
            if ord(s) == 57:
                jiam.append('0')
                # print('0', end='')
            if 65 <= ord(s) < 90:
                jiam.append(chr(ord(s.lower()) + 1))
                # print(chr(ord(s.lower()) - 1), end='')
            if s == 'Z':
                jiam.append('a')

        for s in yjgm:
            if 65 < ord(s) <= 90:
                jiem.append(chr(ord(s.lower()) - 1))
                # print(chr(ord(s.lower()) - 1), end='')
            if s == 'A':
                jiem.append('z')
                # print('z', end='')
            if 48 < ord(s) <= 57:
                jiem.append(chr(ord(s) - 1))
            if s == '0':
                jiem.append('9')
                # print('9', end='')
            if 97 < ord(s) <= 122:
                jiem.append(chr(ord(s.upper()) - 1))
                # print(chr(ord(s.upper()) + 1), end='')
            if s == 'a':
                jiem.append('Z')
        print(''.join(jiam))
        print(''.join(jiem))
    except:
        break