CCF CSP题解:密码(key)(202409-1)
题目和思路
题目背景
西西艾弗网对用户密码有一套安全级别评定标准。
题目描述
在西西艾弗网上,用户的密码是一个由大写字母(A‐Z)、小写字母(a‐z)、数字(0‐9)和特殊字符(*和 #)共 64 种字符组成的字符串。根据复杂程度不同,密码安全度被分为高、中、低三档。
- 高:由上述 64 种字符组成,长度大于等于 6 个字符,包含字母、数字和特殊字符,同一个字符出现不超过 2 次;
- 中:由上述 64 种字符组成,长度大于等于 6 个字符,包含字母、数字和特殊字符,且未达到高安全度要求;
- 低:由上述 64 种字符组成,长度大于等于 6 个字符,且未达到中安全度要求;
小 P 为自己准备了 n n n 个候选密码,试编写程序帮小 P 自动判别每个密码的安全级别。保证这 n n n 个密码都至少满足低安全度要求,当安全度为高、中、低时分别输出2、1、0即可。
输入格式
从标准输入读入数据。
输入共 n + 1 n + 1 n+1 行。
第一行包含一个正整数 n n n,表示待判别的密码个数;
接下来 n n n 行,每行一个字符串,表示一个安全度至少为低的候选密码。
输出格式
输出到标准输出。
输出共 n n n 行,每行输出一个整数 2、1 或 0,表示对应密码的安全度。
样例输入
4
csp#ccsp
csp#ccsp2024
Csp#ccsp2024
CSP#2024
样例输出
0
1
2
2
样例解释
第一个密码不含数字,安全度为低;
第二个密码中小写字母 c 出现 3 次,安全度为中;
和第二个密码相比,第三个密码把一个小写字母 c 变为了大写,满足了高安全度要求;
第四个密码同样满足高安全度要求。
子任务
全部的测试数据满足 n ≤ 100 n \le 100 n≤100,且输入的每个字符串均不超过 20 个字符。
题解
只是基础题,一个复杂度为 O ( n ) O(n) O(n)的算法即可满分通过。
AC代码
#include <iostream>
#include <unordered_map>
using namespace std;int main() {int n;cin >> n;while (n--) {string s;int level = 0;bool hasDigit = 0, hasTeshu = 0, hasAlpha = 0;bool isRepeated = 0;unordered_map<char,int>myset;cin >> s;for (const auto& ch : s) {myset[ch]++;if (myset[ch] > 2)isRepeated = 1;if (isalpha(ch))hasAlpha = 1;else if (isdigit(ch)) hasDigit = 1;else hasTeshu = 1;}if (hasAlpha && hasDigit && hasTeshu && !isRepeated)cout << 2 << endl;else if (hasAlpha && hasDigit && hasTeshu)cout << 1 << endl;else cout << 0 << endl;}return 0;
}
相关文章:
CCF CSP题解:密码(key)(202409-1)
题目和思路 题目背景 西西艾弗网对用户密码有一套安全级别评定标准。 题目描述 在西西艾弗网上,用户的密码是一个由大写字母(A‐Z)、小写字母(a‐z)、数字(0‐9)和特殊字符(*和 …...
RuntimeError: Maximum Recursion Depth Exceeded - 递归深度超限的完美解决方案
RuntimeError: Maximum Recursion Depth Exceeded - 递归深度超限的完美解决方案 🛠️ RuntimeError: Maximum Recursion Depth Exceeded - 递归深度超限的完美解决方案摘要 📃引言 ✨1. 什么是递归?🔍1.1 递归的基本概念 &#x…...
Linux1-ls,cd,pwd
1.Linux操作系统的根目录用/表示。 Windows操作系统的根目录有D:E: 2.Linux命令格式 命令 [选项] [参数] 例如:ls -l / ls表示显示文件夹内容 -l表示以列表的形式展示 /表示显示的是根目录文件夹的内容 其中,[]里面的内容可省略ÿ…...
【高级编程】XML DOM4J解析XML文件(含案例)
文章目录 DOM4JDOM4J 解析 XML读取修改添加删除 XML(EXtensible Markup Language),可扩展标记语言。一种用于存储和传输数据的标记语言。XML 与操作系统、编程语言的开发平台无关。实现不同系统之间的数据交换。 作用:数据交互&a…...
查看VSFTPD配置的服务器路径和linux系统有哪些用户
要查看VSFTPD (Very Secure FTP Daemon)配置中定义的服务器路径,需要检查VSFTPD的配置文件。这通常可以在配置文件中找到并有不同的选项来设置路径。 这里有几个方法可以查看配置的服务器路径: 1. 检查主配置文件 VSFTPD的默认配置文件通常位于`/etc/vsftpd.conf`。可以使用…...
JavaEE: 创造无限连接——网络编程中的套接字
文章目录 Socket套接字TCP和UDP的区别有连接/无连接可靠传输/不可靠传输面向字节流/面向数据报全双工/半双工 UDP/TCP api的使用UDPDatagramSocketDatagramPacketInetSocketAddress练习 TCPServerSocketSocket练习 Socket套接字 Socket是计算机网络中的一种通信机制࿰…...
记K8s组件harbor和kuboard故障恢复
#记录一次工作实践# 故障现象: 本地私有仓库harbor和控制台kuboard均无法正常登陆。 解决过程: 1、harbor恢复过程 通过docker ps -a |grep harbor查看harbor相关的容器状态,发现均显示启动状态,但是仓库无法访问。 通过doc…...
c++ return {};
https://segmentfault.com/q/1010000042734336 return {}; 表示“返回一个用空 列表初始化器 初始化的函数返回类型的对象”。确切的行为取决于返回对象的类型。 std::string get_string() {return {}; // an empty string is returned }...
【设计模式-适配】
Adapter Pattern(适配器模式) 是一种结构型设计模式,其主要目的是让不兼容的接口能够协同工作。适配器模式通过引入一个适配器类,转换一个类的接口,使得原本不兼容的接口可以互相配合,从而实现接口的兼容性…...
深度学习02-pytorch-08-自动微分模块
其实自动微分模块,就是求相当于机器学习中的线性回归损失函数的导数。就是求梯度。 反向传播的目的: 更新参数, 所以会使用到自动微分模块。 神经网络传输的数据都是 float32 类型。 案例1: 代码功能概述: 该…...
使用Python实现深度学习模型:智能宠物监控与管理
在现代家庭中,宠物已经成为许多家庭的重要成员。为了更好地照顾宠物,智能宠物监控与管理系统应运而生。本文将详细介绍如何使用Python实现一个智能宠物监控与管理系统,并结合深度学习模型来提升其功能。 一、准备工作 在开始之前,我们需要准备以下工具和材料: Python环境…...
【HTTPS】对称加密和非对称加密
HTTPS 是什么 HTTPS 是在 HTTP 的基础上,引入了一个加密层(SSL)。HTTP 是明文传输的(不安全) 当下所见到的大部分网站都是 HTTPS 的,这都是拜“运营商劫持”所赐 运营商劫持 下载⼀个“天天动听“&…...
MySQL中的LIMIT与ORDER BY关键字详解
前言 众所周知,LIMIT和ORDER BY在数据库中,是两个非常关键并且经常一起使用的SQL语句部分,它们在数据处理和分页展示方面发挥着重要作用。 今天就结合工作中遇到的实际问题,回顾一下这块的知识点。同时希望这篇文章可以帮助到正…...
Java 编码系列:集合框架(List、Set、Map 及其常用实现类)
引言 在 Java 开发中,集合框架是不可或缺的一部分,它提供了存储和操作一组对象的工具。Java 集合框架主要包括 List、Set 和 Map 接口及其常用的实现类。正确理解和使用这些集合类不仅可以提高代码的可读性和性能,还能避免一些常见的错误。本…...
Go进阶概览 -【7.2 泛型的使用与实现分析】
7.2 泛型的使用与实现分析 泛型是Go 1.18引入的概念,在引入这个概念前经过了好几年的考量最终才将这这个特性加进去。 泛型在多种语言中都是存在的,比如C、Java等语言中都有泛型的概念。 本节我们将针对泛型的使用、实现原理进行整体的讲解。 本节代…...
罗德岛战记游戏源码(客户端+服务端+数据库+全套源码)游戏大小9.41G
罗德岛战记游戏源码(客户端服务端数据库全套源码)游戏大小9.41G 下载地址: 通过网盘分享的文件:【源码】罗德岛战记游戏源码(客户端服务端数据库全套源码)游戏大小9.41G 链接: https://pan.baidu.com/s/1y0…...
AI+教育|拥抱AI智能科技,让课堂更生动高效
AI在教育领域的应用正逐渐成为现实,提供互动性强的学习体验,正在改变传统教育模式。AI不仅改变了传统的教学模式,还为教育提供了更多的可能性和解决方案。从个性化学习体验到自动化管理任务,AI正在全方位提升教育质量和效率。随着…...
WebServer
一、服务器代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <unistd.h> #define PORT 80 #define BUFFER_SIZE 1024 void ha…...
java项目之基于spring boot的多维分类的知识管理系统的设计与实现源码
项目简介 基于spring boot的多维分类的知识管理系统的设计与实现实现了以下功能: 基于spring boot的多维分类的知识管理系统的设计与实现的主要使用者管理员可以管理用户信息,知识分类,知识信息等,用户可以查看和下载管理员发布…...
go的结构体、方法、接口
结构体: 结构体:不同类型数据集合 结构体成员是由一系列的成员变量构成,这些成员变量也被称为“字段” 先声明一下我们的结构体: type Person struct {name stringage intsex string } 定义结构体法1: var p1 P…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
