字符串操作题解02 | #密码验证合格程序#

密码验证合格程序

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

while True:
    try:
        line = input()
        if 1 <= len(line) <= 100:  # 检查输入字符串长度
            a=0
            b=0
            c=0
            d=0
            flag=True
            for i in line:
                if i.isdigit():
                    a=1
                elif i.islower():
                    b=1
                elif i.isupper():
                    c=1
                else:
                    d=1
            for j in range(len(line)-2):  # 修改为 len(line)-2
                if line.count(line[j:j+3])>1:
                    flag=False
            if len(line)>8 and (a+b+c+d)>=3 and flag:
                print("OK")
            else:
                print("NG")
        else:
            print("Invalid input. Palease enter a string between 1 and 100 characters")
    except:
        break

一、解题思路

  1. 理解题目:输入的字符串密码进行验证,长度、类型、重复性验证,
  2. 分析和处理字符串
  3. 长度超过8位,用len()
  4. 至少包含三类字符,用str.isdigit()str.islower()str.isupper()检查字符类型。并设置相应的标志变量来跟踪类型。
  5. 长度没有超过2的字符串重复要求,遍历所有的三个字符的子串,检查每个子串在字符串中的出现次数
  6. 边界值
  7. 输入长度1,100之间
  8. 字符串类型数
  9. 重复字符串
  10. 测试返回
  11. 对于某个条件缺失的字符串,结果应为 "NG"。
  12. 对于一个符合所有要求的字符串,结果应为 "OK"。

二、举一反三

  • 条件检查:通过遍历字符串isdigit、isupper、islower验证数字、大写、小写
  • 子串与重复性检测:遍历所有可能长度为3的子串,并使用count()方法检查重复性。例如在查找重复序列、比较字符串间的差别等问题中。
  • 边界处理:检查密码长度、字符种类等边界条件
  • 模块化思想:将规则检查的每个部分作为独立的任务来处理(长度、种类、重复性等)
  • 测试:构造边界值测试代码
算法学习分析与整理 文章被收录于专栏

个人学习算法的文档整理与思考,举一反三,相爱相杀。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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