题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
# 解题思路:
# 迭代字符串,如果遇到小写字母转换成数字,大写字母转换成小写字母,然后后移一位,其它情况不变
# 使用字典来保存映射规则
# 使用 ord 和 chr 函数计算下一个字母。
chars = input()
# 将字母映射出数字,这里使用字典来保存映射规则
char_map = {
"a": "2",
"b": "2",
"c": "2",
"d": "3",
"e": "3",
"f": "3",
"g": "4",
"h": "4",
"i": "4",
"j": "5",
"k": "5",
"l": "5",
"m": "6",
"n": "6",
"o": "6",
"p": "7",
"q": "7",
"r": "7",
"s": "7",
"t": "8",
"u": "8",
"v": "8",
"w": "9",
"x": "9",
"y": "9",
"z": "9",
}
result = ''
for char in chars:
# 小写字母
if char.islower():
digit = char_map.get(char)
if digit:
result += digit
# 大写字母
elif char.isupper():
char_lower = char.lower()
if char_lower == 'z':
char = 'a'
else:
char = chr(ord(char_lower) +1)
result += char
# 其他
else:
result +=char
print(result)

