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

密码验证合格程序

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

相关推荐

328 48 评论
分享
牛客网
牛客企业服务