ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

HJ20 密码验证合格程序

2022-06-08 12:33:02  阅读:176  来源: 互联网

标签:return 验证 NG 密码 长度 HJ20 OK check


题目描述

密码要求:

1.长度超过8位

2.包括大小写字母.数字.其它符号,以上四种至少三种

3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)

数据范围:输入的字符串长度满足 1≤n≤100

输入描述

一组字符串

输入描述

如果符合要求输出:OK,否则输出NG

代码和解题思路

"""
先声明一个用来判断密码的函数,通过调用函数来完成题目要求
"""
def check(s):
    if len(s)<8:#判断长度是否符合要求
        return 0
    a,b,c,d=0,0,0,0#a,b,c,d分别代表一种符号
    for item in s:#遍历字符串,用ascall吗来查看是否有某种类型符号
        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):#将字符串按分片的字符串分开,一般情况下只能分成两份,即一刀两段,如果有三段,则证明有长度大于2的包含公共元素的子串重复
        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
    

标签:return,验证,NG,密码,长度,HJ20,OK,check
来源: https://www.cnblogs.com/yzysimpletest/p/16355204.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有