简单密码 python3的粗暴解法

简单密码

http://www.nowcoder.com/questionTerminal/7960b5038a2142a18e27e4c733855dac

while True:
    try:
        s = input()
        res = []
        for i in s:
            if i.isdigit():
                res.append(i)
            elif i.isupper() and i != 'Z':
                res.append(chr(ord(i.lower()) + 1))
            elif i == 'Z':
                res.append('a')
            else:
                if i in 'abc':
                    res.append('2')
                elif i in 'def':
                    res.append('3')
                elif i in 'ghi':
                    res.append('4')
                elif i in 'jkl':
                    res.append('5')
                elif i in 'mno':
                    res.append('6')
                elif i in 'pqrs':
                    res.append('7')
                elif i in 'tuv':
                    res.append('8')
                else:
                    res.append('9')
        print(''.join(res))
    except:
        break

简单粗暴没什么好讲的
全部评论
他这里可能考虑了多组字符串的输入
2 回复 分享
发布于 2021-08-23 20:58
虽然现有用例能跑过,但是加上特殊字符就默认是9了
3 回复 分享
发布于 2022-04-15 21:05
最后一个判断改为elif i in 'wxyz',然后再加上else:res.append(i),就可以解决特殊字符问题
3 回复 分享
发布于 2023-03-03 16:18 陕西
最后if的else改一下 改成elif ord(i) in range(97,123) 然后再加else 直接res.append(i)就可以实现特殊字符
1 回复 分享
发布于 2022-04-06 20:58
把while True 和try 去掉运行结果是对的
点赞 回复 分享
发布于 2021-06-12 10:44
小写字母要转化成数字,但是你的代码并没有实现
点赞 回复 分享
发布于 2022-03-04 22:18
牛逼
点赞 回复 分享
发布于 2023-03-06 17:10 山西
为什么我if i.isdigit(): 这里报字符串不能判断
点赞 回复 分享
发布于 2023-03-10 19:52 上海

相关推荐

爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
评论
100
9
分享
牛客网
牛客企业服务