华为机考入门python3--(20)牛客20- 密码验证合格程序

ops/2024/11/15 0:48:30/

分类:字符串

知识点:

  1. 遍历字符串的每个字符    for char in my_str:

  2. 可以直接比较字符范围    'a' <= char <= 'z'

  3. 列表统计元素个数    my_list.count(elem)

  4. 寻找子串    my_str.find(sub_str)

题目来自【牛客】

图片

import re  
import sysdef check_password(password):  # 检查密码长度  if len(password) <= 8:  return "NG"  # 判断是否至少包括大小写字母、数字和其他符号中的三种categories = [False] * 4for char in password:if 'a' <= char <= 'z':categories[0] = Trueelif 'A' <= char <= 'Z':categories[1] = Trueelif '0' <= char <= '9':categories[2] = Trueelse:categories[3] = Trueif categories.count(True) < 3:return "NG"# 判断是否有长度大于2的重复子串for i in range(len(password) - 3):substr = password[i:i+3]# find() 方法是字符串类型(str)的一个方法,# 用于查找子字符串在主字符串中首次出现的位置。# 如果找到子字符串,则返回其首次出现的索引值;# 如果未找到子字符串,则返回-1if password[i+3:].find(substr) != -1:return "NG"return "OK"for line in sys.stdin:password = line.strip()result = check_password(password)print(result)

by 软件工程小施同学


http://www.ppmy.cn/ops/31090.html

相关文章

在M1芯片安装鸿蒙闪退解决方法

在M1芯片安装鸿蒙闪退解决方法 前言下载鸿蒙系统安装完成后&#xff0c;在M1 Macos14上打开闪退解决办法接下来就是按照提示一步一步安装。 前言 重新安装macos系统后&#xff0c;再次下载鸿蒙开发软件&#xff0c;竟然发现打不开。 下载鸿蒙系统 下载地址&#xff1a;http…

MLP手写数字识别(1)-MNIST数据集下载与可视化(tensorflow)

1.下载与查看MNIST数据集 from keras.datasets import mnist(x_train_image,y_train_label),(x_test_image,y_test_label) mnist.load_data() print("train images:",x_train_image.shape) print("test images:",x_test_image.shape) print("train …

Android 学习 鸿蒙HarmonyOS 4.0 第四章(TS中的条件判断语句)

PS&#xff1a;在有关TS的博客中呢&#xff0c;我想声明一点&#xff0c;如果是零基础没有开发经验的小伙伴&#xff0c;直接学鸿蒙会有些吃力&#xff0c;可以先学一下TS&#xff0c;比较好入手一些&#xff0c;鸿蒙主推的开发语音是ArkTS&#xff0c;是TS的超集&#xff0c;先…

论文笔记(四十五)Attention Is All You Need

Attention Is All You Need 文章概括摘要1. 介绍2. 背景3. 模型架构3.1 编码器和解码器堆栈3.2 Attention3.2.1 按比例点积Attention3.2.2 Multi-Head Attention3.2.3 注意力在模型中的应用 3.3 定位前馈网络3.4 嵌入与 Softmax3.5 位置编码 4 为什么 Self-Attention5. Trainin…

MySQL存储引擎的选择与深度解析:InnoDB vs MyISAM,以及Memory和Archive

引言 MySQL是一个开源的关系型数据库管理系统&#xff0c;它提供了多种存储引擎以适应不同的应用场景和需求。每种存储引擎都有其独特的特点和优势&#xff0c;如InnoDB、MyISAM、Memory和Archive等。本文将深入探讨这些存储引擎的区别&#xff0c;并提供如何选择合适的存储引…

Linux POSIX消息队列遇到的问题和使用方法

目录 一、开发环境及消息队列介绍二、问题描述三、解决办法四、测试代码 一、开发环境及消息队列介绍 开发板&#xff1a;nuc980 1.ARM Linux中消息队列的原理   在ARM Linux中&#xff0c;消息队列是通过POSIX&#xff08;Portable Operating System Interface&#xff09…

✔ ★Java大项目——用Java模拟RabbitMQ实现一个消息队列(二)【创建核心类、封装数据库操作】

✔ ★Java大项目——用Java模拟RabbitMQ实现一个消息队列 四. 项⽬创建五. 创建核⼼类 ★创建 Exchange&#xff08;名字、类型、持久化、自动删除、参数&#xff09;创建 MSGQueue&#xff08;名字、持久化、独占标识&#xff09;创建 Binding&#xff08;交换机名字、队列名字…

nuxt3项目服务端bulid后在本地浏览的3种方式(nuxi preview、Node.js Server、PM2)

你也许会问有了开发调试本地浏览&#xff0c;为什么还要服务端构建之后在本地浏览&#xff1f; 举个简单例子 在 Nuxt 3 服务端打包中&#xff0c;由于运行环境不同&#xff0c;无法直接访问 process 对象。服务端打包通常是在 Node.js 环境中进行的&#xff0c;而 process 对象…