题解 | #简单密码#

简单密码

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

利用正则表达式进行匹配或替换

解法一

import re

while True:
    try:
        passwd = list(input().strip())
        passwd_origin = []
        for item in passwd:
            if not re.match('[0-9]', item) and not re.match('[^a-zA-Z0-9]', item):
                if re.match('[a-z]', item):
                    if re.match('[a-c]', item):
                        passwd_origin.append(2)
                    elif re.match('[d-f]', item):
                        passwd_origin.append(3)
                    elif re.match('[g-i]', item):
                        passwd_origin.append(4)
                    elif re.match('[j-l]', item):
                        passwd_origin.append(5)
                    elif re.match('[m-o]', item):
                        passwd_origin.append(6)
                    elif re.match('[p-s]', item):
                        passwd_origin.append(7)
                    elif re.match('[t-v]', item):
                        passwd_origin.append(8)
                    elif re.match('[w-z]', item):
                        passwd_origin.append(9)
                elif re.match('[A-Y]', item):
                    passwd_origin.append(chr(ord(item) + 33))
                elif re.match('[Z]', item):
                    passwd_origin.append('a')
            else:
                passwd_origin.append(item)
        passwd_origin = [str(i) for i in passwd_origin]
        passwd_origin_str = ''.join(passwd_origin)
        print(passwd_origin_str)

    except:
        break

解法二

import re

while True:
    try:
        passwd = input().strip()
        passwd_origin = re.sub("[a-c]", "2", passwd)
        passwd_origin = re.sub("[d-f]", "3", passwd_origin)
        passwd_origin = re.sub("[g-i]", "4", passwd_origin)
        passwd_origin = re.sub("[j-l]", "5", passwd_origin)
        passwd_origin = re.sub("[m-o]", "6", passwd_origin)
        passwd_origin = re.sub("[p-s]", "7", passwd_origin)
        passwd_origin = re.sub("[t-v]", "8", passwd_origin)
        passwd_origin = re.sub("[w-z]", "9", passwd_origin)

        def high_low(matched):
            str_up = matched.group(0)
            asc = ord(str_up) + 33
            value = chr(asc)
            return str(value)

        passwd_origin = re.sub("[A-Y]", high_low, passwd_origin)
        passwd_origin = re.sub("[Z]", "a", passwd_origin)

        print(str(passwd_origin))

    except:
        break
全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务