题解 | #密码验证合格程序#

密码验证合格程序

http://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

def check(s):
    if len(s) <= 8:
        return 0
    a, b, c, d = 0, 0, 0, 0
    for item in s:
        if ord('a') <= ord(item) <= ord('z'):
            a = 1
        elif ord('A') <= ord(item) <= ord('Z'):
            b = 1
        elif ord('0') <= ord(item) <= ord('9'):
            c = 1
        else:
            d = 1
    if a + b + c + d < 3:
        return 0
    for i in range(len(s)-3):
        if len(s.split(s[i:i+3])) >= 3:
            return 0
    return 1

while 1:
    try:
        print('OK' if check(input()) else 'NG')
    except:
        break
全部评论
len(s.split(s[i:i+3])) >= 3 这个判断方法好巧妙啊,佩服
50 回复 分享
发布于 2021-12-08 18:33
大神 收下我的膝盖
11 回复 分享
发布于 2021-10-28 19:00
这个split很nb
9 回复 分享
发布于 2022-06-11 21:23
大佬,不取ascll码直接比较也是可以的
7 回复 分享
发布于 2022-03-19 17:51
len(s.split(s[i:i+3])) >= 3 这个检验子串有问题,可能是用例没有覆盖到,题目说的是“包含公共元素的子串”,如ababa,两个aba,其中公共元素是a,这种情况会误判合格
5 回复 分享
发布于 2022-08-11 00:06
想问下什么叫“不能有长度大于2的不含公共元素的子串重复 (注:其他符号不含空格或换行)”,一直不理解这句话的意思
5 回复 分享
发布于 2022-01-24 12:00
秒啊,就第三个判断条件,太妙了。我print(in_put.split(in_put[i:i+3]))才明白大佬在干什么
3 回复 分享
发布于 2022-06-30 23:38
16行为啥是减3……len(s)=10,range(10-3)是0到6,最后一个i是6,s[i:i+3]是s[6:9],切片左闭右开,落下了末尾字符啊
3 回复 分享
发布于 2022-03-28 21:52
如果重复的字段在最后,len(s.split(s[i:i+3]))==2 ,不会大于3 比如: abc%1234abc
2 回复 分享
发布于 2023-07-11 16:31 广东
像是23aaaa45这样的包含公共字符的不能这样分割出来吧
2 回复 分享
发布于 2022-07-19 15:09
ord可以不需要吧,直接比较字符他也是自动去比较ASCII码的吧
2 回复 分享
发布于 2022-06-26 13:41
题目的第二个条件:不能有长度大于2的包含公共元素的子串重复 包含公共元素这个怎么理解?子串不都是原字符串里派生出来的吗?不都是公共的,这么说不是多次一举? 另一种理解是两个子串部分重叠,这样这两个子串就有公共元素了,而且不能重复,如:babab,子串 bab 和 bab 重复,并且包含公共元素 b。可是答案明显这个是 OK 的。 这个语句还真是有点晕。​
2 回复 分享
发布于 2022-05-11 15:59
感觉还要把特殊符号中的空格和换行去掉 换行也许可以不去
2 回复 分享
发布于 2022-02-23 19:10
试了一下,如果重复子串出现在两端,会在两端切出一个空的字符串,应该也会计算进去的
1 回复 分享
发布于 2024-09-01 20:25 江苏
这个split秀的我头皮发麻
1 回复 分享
发布于 2023-08-26 07:07 美国
为什么我只打印"NG",不打印"OK"
1 回复 分享
发布于 2022-10-26 15:38 陕西
len(s.split(s[i:i+3])) >= 3这个方法不是很好,如果用例是 021Abc9Abc 这样就出问题了
1 回复 分享
发布于 2022-09-27 23:57 上海
4个相同元素连接在一起split方法失效了?比如 0000Apple
1 回复 分享
发布于 2022-08-07 00:01
绝了这个“计算”split后的列表长度,就算重复串“Abc”挨在一起,也是可以计算出重复,达到列表=3的预期!
1 回复 分享
发布于 2022-06-25 10:50
为什么只考虑长度为3的重复子串?
1 回复 分享
发布于 2022-05-21 14:02

相关推荐

评论
393
54
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
9937次浏览 92人参与
# 你的实习产出是真实的还是包装的? #
1793次浏览 41人参与
# 米连集团26产品管培生项目 #
5803次浏览 214人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7494次浏览 43人参与
# 简历第一个项目做什么 #
31591次浏览 332人参与
# 重来一次,我还会选择这个专业吗 #
433398次浏览 3926人参与
# MiniMax求职进展汇总 #
23895次浏览 308人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187025次浏览 1122人参与
# 牛客AI文生图 #
21414次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152310次浏览 887人参与
# 研究所笔面经互助 #
118882次浏览 577人参与
# 简历中的项目经历要怎么写? #
310120次浏览 4197人参与
# AI时代,哪些岗位最容易被淘汰 #
63489次浏览 806人参与
# 面试紧张时你会有什么表现? #
30490次浏览 188人参与
# 你今年的平均薪资是多少? #
213034次浏览 1039人参与
# 你怎么看待AI面试 #
179917次浏览 1237人参与
# 高学历就一定能找到好工作吗? #
64317次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76452次浏览 374人参与
# 我的求职精神状态 #
448008次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363299次浏览 2637人参与
# 腾讯音乐求职进展汇总 #
160600次浏览 1111人参与
# 校招笔试 #
470578次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务