密码检查-C语言/Java
描述
小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求:
1. 密码只能由大写字母,小写字母,数字构成;
2. 密码不能以数字开头;
3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;
4. 密码长度至少为8
现在小明受到了n个密码,他想请你写程序判断这些密码中哪些是合适的,哪些是不合法的。
输入描述
输入一个数n,接下来有n(n≤100)行,每行一个字符串,表示一个密码,输入保证字符串中只出现大写字母,小写字母和数字,字符串长度不超过100。
输出描述
输入n行,如果密码合法,输出YES,不合法输出NO。
示例
输入:1
CdKfIfsiBgohWsydFYlMVRrGUpMALbmygeXdNpTmWkfyiZIKPtiflcgppuR
输出:YES
分析:先对密码第一个字符和密码长度进行判断,若不合法,直接判断下一个密码,再对密码这个字符串进行遍历,分别求各种字符的个数,如果输入的字符不在字母大小写和数字范围内,则不合法,直接判断下一个密码,最后判断小写字母、大写字母和数字三类中有几类。
C语言
#include <stdio.h>
#include<string.h>
int main() {
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
char str[101]={0};
scanf("%s",str);
if(strlen(str)<8)
{
printf("NO\n");
continue;
}
if(str[0]>='0'&&str[0]<='9')
{
printf("NO\n");
continue;
}
//分别记录小写字母、大写字母、数字和其他字符的个数
int character=0,CHAR=0,num=0,other=0;
for(int j=0;str[j]!='\0';j++)
{
if(str[j]>='a'&&str[j]<='z') character++;
else if(str[j]>='A'&&str[j]<='Z') CHAR++;
else if(str[j]>='0'&&str[j]<='9') num++;
else other++;
}
if(other!=0)
{
printf("NO\n");
continue;
}
//三种字符出现少于两种
if((character>0)+(CHAR>0)+(num>0)<2)
{
printf("NO\n");
continue;
}
printf("YES\n");
}
return 0;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
in.nextLine();
for(int i=1;i<=n;i++)
{
String str=in.nextLine();
char[] ch=str.toCharArray();
if(ch.length<8)
{
System.out.println("NO");
continue;
}
if(ch[0]>='0'&&ch[0]<='9')
{
System.out.println("NO");
continue;
}
//分别记录小写字母、大写字母、数字和其他字符的个数
int character=0,CHAR=0,num=0,other=0;
for(int j=0;j<ch.length;j++)
{
if(ch[j]>='a'&&ch[j]<='z') character++;
else if(ch[j]>='A'&&ch[j]<='Z') CHAR++;
else if(ch[j]>='0'&&ch[j]<='9') num++;
else other++;
}
if(other!=0)
{
System.out.println("NO");
continue;
}
//字符类型个数
int count=0;
if(character>0){
count++;
}
if(CHAR>0){
count++;
}
if(num>0){
count++;
}
if(count<2){
System.out.println("NO");
continue;
}
System.out.println("YES");
}
}
}
相关文章:
密码检查-C语言/Java
描述 小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求: 1. 密码只能由大写字母,小写字母,数字构成; 2. 密码不…...
基于Matlab实现心电信号小波特征提取和对应疾病识别仿真(附上源码+数据集)
本文基于Matlab平台,研究了心电信号的小波特征提取方法,并应用于心电信号疾病识别仿真实验中。首先,介绍了心电信号的基本特征和常见的心电疾病。然后,详细阐述了小波变换的原理和方法,并提出了一种基于小波分解和小波…...
第五十二天
HTML5 ●MathML 是数学标记语言,是一种基于XML(标准通用标记语言的子集)的标准,用来在互联网上书写数学符号和公式的置标语言。 ●拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中…...
爬虫练手项目——获取龙族小说全文
网站信息 目标网站信息如下:包含了龙族1-5全部内容 代码 import requests from bs4 import BeautifulSoup import os import timeheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Sa…...
OpenCV图像处理——几何变换
目录 图像缩放图像平移图像旋转图像的仿射变换透射变换图像金字塔 图像缩放 cv.resize(src,dsize,fx0,fy0,interpolationcv2.INTER_LINEAR)import numpy as np import cv2 as cv import matplotlib.pyplot as pltkidscv.imread(./汪学长的随堂资料/4/图像操作/dog.jpg) plt.im…...
Apache JMeter:完全指南
Apache JMeter 是一款开源的性能测试工具,可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。 下载和安装 由于 JMeter 是使用 Java 开发的,因此在运行之前必须先安装 JDK。您可以在…...
js obj 生成java 实体 entity
js obj 生成java 实体 entity D:\proj\js\js-util\gen_java.js 文档:js obj 生成java 实体 entity.note 链接:http://note.youdao.com/noteshare?idc61fbd4b8684dc41c8c9ab42107d5f87&subE7484F5F277041578A2E58FDC6320BA6 添加链接描述 class S…...
【第二阶段】kotlin语言的匿名函数与具名函数
fun main() {//匿名函数val niminginfoniming("kotlin",20,{"$it"})println(niminginfo)//具名函数 理解:showResult:(String)->String):StringshowResultImpl(result:String):Stringval juminginfoniming("c ",20,::showResultI…...
P1123 取数游戏
取数游戏 题目描述 一个 N M N\times M NM 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8 8 8 个格子中的一个即认为这两个数字相邻),求…...
JavaScript高级:原型与原型链继承方式
在 JavaScript 中,继承是一种重要的概念,它使得对象可以从其他对象继承属性和方法,实现代码的重用和扩展。原型与原型链是 JavaScript 中实现继承的核心机制,虽然听起来有些高深,但我们可以通过通俗易懂的方式来理解它…...
使用vue-grid-layout时 You may need an appropriate loader to handle this file type.
使用vue-grid-layout时 You may need an appropriate loader to handle this file type. node版本不匹配 我的node v14.16.0 vue-gride-layout 需要用 v 2.3.7的版本 卸载后重新安装即可...
C# 2048小游戏核心算法
文章目录 01.程序结构划分02.去零03.合并04.上移05.下移/左移/右移,只是取数据的方向不同06.提高可读性 01.程序结构划分 02.去零 有序向量“唯一化”的思路。 /// <summary>/// 去零/// </summary>/// <param name"row">对于一行或一…...
设计模式(5)代理模式
一、介绍: 【Subject/抽象角色】定义了RealSubject和Proxy的共用接口,这样就可以在任何使用RealSubject的地方都可以使用Proxy 【RealSubject/真实角色】定义Proxy所代表的真实实体 【Proxy/代理角色】保存一个引用使得代理可以访问实体,并…...
Django配置(部署环境较乱,暂时启用)
django配置 web服务器中部署项目及WSGI简介 web服务器 WSGI 在IIS中部署django项目 安装 wfastcgi :pip install wfastcgi安装IIS: 以上选择项勾选后确定 将CGI文件复制到项目中, 将项目复制到IIS默认目录中 部署IIS 添加变量信息如下…...
【设计模式】桥接模式
桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得…...
ol问题总结二
一、加载坐标系是4326格式的,使用wfsServer发布的服务,图层加载失败;坐标系是3857格式的。图层加载正常 原因:4326格式的,发布出来的,经纬度是颠倒的 解决方案一:将经纬度进行反转 <templa…...
批量打印-----jsPDF将图片转为pdf,并合并pdf
安装依赖并引入 import jsPDF from jspdf; import { PDFDocument, } from pdf-lib;注意一、 使用jspdf将图片(jpg/jpeg/png/bmp)转pdf(记为pdfA),得到的pdf(pdfA)和需要合并的pdf(记为pdfB)类…...
【Git】版本控制器详解之git的概念和基本使用
版本控制器git 初始Gitgit的安装git的基本使用初始化本地仓库配置本地仓库三区协作添加---add修改文件--status|diff版本回退--reset撤销修改删除文件 初始Git 为了能够更⽅便我们管理不同版本的⽂件,便有了版本控制器。所谓的版本控制器,就是⼀个可以记…...
C语言 棱形图案
目录 一、问题分析 上部分: 下部分: 二、代码演示 一、问题分析 如上图所示,我们可以将棱形进行拆解,分为上下两个部分。 上部分: 通过观察,我们得到 单边空格数 上半部分总行数 - 行数 - 1 …...
在idea使用GitHub账号、Copilot异常
登录GitHub显示这样的信息: Invalid authentication data.Connection refused: connect Failed to initiate the GitHub login process. Please try again. 修改hosts(C:\Windows\System32\drivers\etc\hosts),添加以下参数即可…...
丹青幻境常见问题解决:显存不足、脸部模糊?看这篇就够了
丹青幻境常见问题解决:显存不足、脸部模糊?看这篇就够了 1. 问题概述与快速诊断 丹青幻境作为一款基于Z-Image架构的数字艺术创作工具,在使用过程中可能会遇到一些技术问题。本文将重点解决两个最常见的问题:显存不足导致的运行…...
Langchain实战:如何用ChatGLM-4搭建你的第一个AI对话机器人(附完整代码)
Langchain实战:如何用ChatGLM-4搭建你的第一个AI对话机器人(附完整代码) 最近两年,大模型技术以惊人的速度渗透到各个领域。从智能客服到内容创作,从代码生成到数据分析,AI对话机器人正在重塑人机交互的方式…...
【车辆】simulink自动驾驶赛车基于快速探索随机树的路径规划【含Matlab源码 15318期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...
深夜告警炸裂?这份Linux故障排查“作战地图”请收好曰
先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...
低空经济“充电网”:原理、场景与未来布局全解析
低空经济“充电网”:原理、场景与未来布局全解析 引言:为什么说“充电桩”是低空经济的“加油站”? [外链图片转存中…(img-5rpT3Icb-1775923220357)] 随着无人机与eVTOL(电动垂直起降飞行器)从“玩具”和“概念”走向…...
10_TiDB AI生态集成与行业实践案例
10_TiDB AI 生态集成与行业实践案例 标签: TiDB AI生态 LangChain RAG实践 行业案例 Django SQLAlchemy 关键词: TiDB AI生态、LangChain集成、LlamaIndex集成、Django TiDB、SQLAlchemy向量、行业实践案例、知识库问答、智能客服、TiDB.AI、GraphRAG、…...
零基础部署NaViL-9B:手把手教你搭建图文理解AI助手
零基础部署NaViL-9B:手把手教你搭建图文理解AI助手 1. 认识NaViL-9B多模态模型 NaViL-9B是由专业研究机构开发的原生多模态大语言模型,它不仅能像普通AI助手一样处理文本问答,还具备理解图片内容的独特能力。这意味着你可以上传一张照片&am…...
从‘链式法则’到‘误差信号’:手绘流程图拆解BP,像调试程序一样理解神经网络学习
从‘链式法则’到‘误差信号’:手绘流程图拆解BP,像调试程序一样理解神经网络学习 第一次看到反向传播的数学推导时,那些偏导数和链式法则让我想起了刚学编程时调试递归函数的痛苦经历。直到有一天,我把神经网络的前向传播想象成函…...
3个技巧让你立即掌握gInk:Windows上最轻量的免费屏幕画笔工具
3个技巧让你立即掌握gInk:Windows上最轻量的免费屏幕画笔工具 【免费下载链接】gInk An easy to use on-screen annotation software inspired by Epic Pen. 项目地址: https://gitcode.com/gh_mirrors/gi/gInk gInk屏幕标注工具是一款专为Windows用户设计的…...
XCA 2.9.0:高效管理数字证书与密钥的全面解决方案
XCA 2.9.0:高效管理数字证书与密钥的全面解决方案 【免费下载链接】xca X Certificate and Key management 项目地址: https://gitcode.com/gh_mirrors/xc/xca XCA(X Certificate and Key Management)是一款开源的图形化证书和密钥管理…...
