题解 | #简单密码#

简单密码

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)

全部评论

相关推荐

没有offer的呆呆:薪资有的时候也能说明一些问题,太少了活不活得下去是一方面,感觉学习也有限
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务