【华为笔试-3】HJ20 密码验证合格程序

news/2024/11/6 11:58:43/文章来源:https://www.cnblogs.com/io-T-T/p/18529696

HJ20 密码验证程序

image-20241106114740526

输入:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出:
OK
NG
NG
OK

注:输入结束后有中止结束标志EOF【这个原题给的时候无说明,自己跑他的用例和看论坛看出来的】

  1. 题解:

    要点有三个,分别是:长度超过八位、包含三种以上、和公共子字符串,以及输入输出

    • 输入输出:以为如果知道了他有EOF终止输入的话,可以使用 sys.stdin.read或者使用while+ try的方式,我是用的后者,方便调试。
    • 长度超过八位就不解释了
    • 至少三种以上:遍历每个字符,如果出现了大、小写、数字、字符、那么出现的情况就记为1,无则0.最后统计满足情况
    • 公共子序列:
      1. 遍历密码获得长度为3的子序列【如果不存在则append,否则直接退出】(因为不能大于2,就是最少是3个)
  2. 难度:

    • 如果题目告诉了有EOF的情况下挺简单,没解释清楚有EOF我也不会获取不定长输入
  3. code:

    """
    021Abc9000
    021Abc9Abc1
    021ABC9000
    021$bc9000OK
    NG
    NG
    OK
    """
    dig,low,up,pun = 0,1,2,3
    OK = "OK"
    NotOk = "NG"
    import stringdef judge_whether_lawful(input_str:str)->str:strs = [one_char for one_char in input_str]ok_count_list = [0,0,0,0] #4 situationok_count = 0if len(strs) < 8:return NotOkfor idx in range(len(strs)):if strs[idx] in string.digits:ok_count_list[dig] = 1elif strs[idx] in string.ascii_lowercase:ok_count_list[low] = 1elif strs[idx] in string.ascii_uppercase:ok_count_list[up] = 1elif strs[idx] in string.punctuation:ok_count_list[pun] = 1ok_count = sum(ok_count_list)public_list = []for idx in range(2,len(strs)):get_public = input_str[idx-2:idx] + input_str[idx]if get_public in public_list:return NotOkelse:public_list.append(input_str[idx-2:idx]+input_str[idx])if ok_count >= 3:return OKelse:return NotOkif __name__ == '__main__':input_list = []while True:try:temp_input = input()print(judge_whether_lawful(temp_input))except:break
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827579.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记Linux使用异常2

麒麟v10系统开机后提示如下信息,并进入initramfs模式,[0.224166][ 0l dmi: Firmware registration failed, [0.936010][ 0] serial8250 serial8250.0: unable to register port at index 1 (IOFFFFF10204000000 MEM0 IRQ0): -22 [1.829735][ 0] i8042: i8042 controller self…

SVN集成ExcelMerge

在SVN中对比表格差异时,如果只是一个sheet的CSV表格,SVN自带的diff效果也很好,如果是多个Sheet的xlsx表格,,SVN自带的diff效果就很差 ExcelMerge是一个在Windows平台下比对Excel的工具,当Excel存在多个Sheet时也能很好的支持差异的比对,配合上svn可以很好的查看策划的数…

homeassistant docker搭建并接入米家设备

homeassistant docker搭建教程: 下载镜像 docker pull homeassistant/home-assistant:latest 找个顺眼的地方建立目录,如/etc/dockerdata/homeassistant创建容器 mkdir /etc/dockerdata mkdir /etc/dockerdata/homeassistant然后执行命令: docker run -d \--name homeassist…

例题7.3

import numpy as np from scipy.interpolate import lagrange import matplotlib.pyplot as plt import matplotlib yx = lambda x: 1/(1+x**2)def fun(n):x = np.linspace(-5, 5, n+1)p = lagrange(x, yx(x)) # n次插值多项式return px0 = np.linspace(-5, 5, 100)plt.rc(fo…

Windows10 移动热点无法连接

一:windows10 移动热点手机无法连接 1.查看原因手机连接不上,看看是不是一直在现实获取ip地址2.网卡设置当打开移动热点时候,会有一张网卡 名称为 Microsoft Wi-Fi xxxxx打开你的上网网卡-属性->共享(右上角)->开启连接共享->选择Microsoft Wi-Fi 那张网卡连接成…

解决修改php.ini配置文件不生效的问题

公司禅道研发反馈任务创建的多了就报:Allowed memory size of 33554432 bytes exhausted (tried to alloate 3643528 bytes) in lib/base/front/front.class.php on line 1315 when visiting /index.php?m=execution&f=task&id=28;通过报错即可得知,php的memory_li…

Error:Kotlin: Module was compiled with an incompatible version of Kotlin.

idea 启动项目时报错 Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.1.16. 解决方案(windows): 1、打开Kotlin面板 路径:File -> settings -> Languages & F…

JavaScript用法

JavaScript 用法HTML 中的 Javascript 脚本代码必须位于 <script> 与 </script> 标签之间。 Javascript 脚本代码可被放置在 HTML 页面的 <body> 和 <head> 部分中。<script> 标签 如需在 HTML 页面中插入 JavaScript,请使用 <script> 标…

在vite里面,使用linaria,css样式名混淆的问题

我们项目使用css in js来实现样式,借用了一个插件linaria。但是有一个问题,就是样式名会被混淆如下解决方法是,vite配置里面加一个 就可以了,结果如下

刚毕业,去做边缘业务,还有救吗?

有一些同时拿到了多个 Offer 的同学,会纠结于如何选择。其中有一些比较共性的问题,比如 “刚毕业,去做边缘业务,会不会影响后面的人生呢?”大家好,我是程序员鱼皮。今年的秋招已经接近尾声,我陆续收到了很多小伙伴们的 Offer 报喜。有一些同时拿到了多个 Offer 的同学,…

符合ISO26262的零部件级的软件测试解决方案

引言在功能安全的开发、测试过程中概念阶段的活动一般都是由主机厂负责,而从系统开发到单元实现则是由供应商负责,对于供应商所做的一系列测试通常称为零部件级测试。根据ISO 26262功能安全标准的划分,功能安全在零部件阶段的测试包括:软件单元测试、软件集成测试、硬件集成…

惊呆:where 1=1 可能严重影响性能,差了10多倍,快去排查你的 sql

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,…