Skip to content

HJ29 字符串加解密 ​

本节目标:理解“HJ29 字符串加解密”的核心思路,并能把它用于实际开发或面试表达。 中等 通过率:24.87% 时间限制:1秒 空间限制:32M 描述 对输入的字符串进行加解密,并输出。 加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0; 其他字符不做变化。

解密方法为加密的逆过程。 数据范围:输入的两个字符串长度满足 1≤n≤1000 ,保证输入的字符串都是只由大小写字母或者数字组成 输入描述: 第一行输入一串要加密的密码 第二行输入一串加过密的密码 输出描述: 第一行输出加密后的字符 第二行输出解密后的字符 示例1 输入: abcdefgBCDEFGH ==复制== 输出: BCDEFGHabcdefg

要实现这个加密和解密过程,我们可以定义两个函数:一个用于加密,另一个用于解密。这两个函数会根据提供的规则,对输入的字符串进行相应的字符替换。

加密规则: ​

  • 英文字母替换为其后一个字母,并转换大小写。
  • 数字加1,9替换为0。
  • 其他字符不变。

解密规则: ​

  • 与加密规则相反。

下面是Python代码实现: def encrypt(text): result = "" for char in text: if char.isalpha():

英文字母替换为其后一个字母,并转换大小写 ​

if char.islower(): result += chr((ord(char) - ord('a') + 1) % 26 + ord('A')) else: result += chr((ord(char) - ord('A') + 1) % 26 + ord('a')) elif char.isdigit():

数字加1,9替换为0 ​

result += str((int(char) + 1) % 10) else:

其他字符不变 ​

result += char return result

def decrypt(text): result = "" for char in text: if char.isalpha():

逆向替换英文字母,并转换大小写 ​

if char.islower(): result += chr((ord(char) - ord('a') - 1) % 26 + ord('A')) else: result += chr((ord(char) - ord('A') - 1) % 26 + ord('a')) elif char.isdigit():

数字减1,0替换为9 ​

result += str((int(char) - 1) % 10) else:

其他字符不变 ​

result += char return result

输入 ​

text_to_encrypt = input() text_to_decrypt = input()

加密和解密 ​

encrypted_text = encrypt(text_to_encrypt) decrypted_text = decrypt(text_to_decrypt)

输出 ​

print(encrypted_text) print(decrypted_text) 这段代码首先定义了加密和解密函数。在加密函数中,它遍历输入的每个字符,根据字符的类型(字母、数字、其他)应用相应的转换规则,并构建加密后的字符串。解密函数以相同的方式工作,但应用逆向转换规则。最后,代码读取要加密的文本和要解密的文本,调用这些函数,并输出结果。

本站总访问 — 次