当前位置: 首页 > news >正文

密码检查-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

描述 小明同学最近开发了一个网站&#xff0c;在用户注册账户的时候&#xff0c;需要设置账户的密码&#xff0c;为了加强账户的安全性&#xff0c;小明对密码强度有一定要求&#xff1a; 1. 密码只能由大写字母&#xff0c;小写字母&#xff0c;数字构成&#xff1b; 2. 密码不…...

基于Matlab实现心电信号小波特征提取和对应疾病识别仿真(附上源码+数据集)

本文基于Matlab平台&#xff0c;研究了心电信号的小波特征提取方法&#xff0c;并应用于心电信号疾病识别仿真实验中。首先&#xff0c;介绍了心电信号的基本特征和常见的心电疾病。然后&#xff0c;详细阐述了小波变换的原理和方法&#xff0c;并提出了一种基于小波分解和小波…...

第五十二天

HTML5 ●MathML 是数学标记语言&#xff0c;是一种基于XML&#xff08;标准通用标记语言的子集&#xff09;的标准&#xff0c;用来在互联网上书写数学符号和公式的置标语言。 ●拖放 拖放是一种常见的特性&#xff0c;即抓取对象以后拖到另一个位置。 在 HTML5 中&#xf…...

爬虫练手项目——获取龙族小说全文

网站信息 目标网站信息如下&#xff1a;包含了龙族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 是一款开源的性能测试工具&#xff0c;可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。 下载和安装 由于 JMeter 是使用 Java 开发的&#xff0c;因此在运行之前必须先安装 JDK。您可以在…...

js obj 生成java 实体 entity

js obj 生成java 实体 entity D:\proj\js\js-util\gen_java.js 文档&#xff1a;js obj 生成java 实体 entity.note 链接&#xff1a;http://note.youdao.com/noteshare?idc61fbd4b8684dc41c8c9ab42107d5f87&subE7484F5F277041578A2E58FDC6320BA6 添加链接描述 class S…...

【第二阶段】kotlin语言的匿名函数与具名函数

fun main() {//匿名函数val niminginfoniming("kotlin",20,{"$it"})println(niminginfo)//具名函数 理解&#xff1a;showResult:(String)->String):StringshowResultImpl(result:String):Stringval juminginfoniming("c ",20,::showResultI…...

P1123 取数游戏

取数游戏 题目描述 一个 N M N\times M NM 的由非负整数构成的数字矩阵&#xff0c;你需要在其中取出若干个数字&#xff0c;使得取出的任意两个数字不相邻&#xff08;若一个数字在另外一个数字相邻 8 8 8 个格子中的一个即认为这两个数字相邻&#xff09;&#xff0c;求…...

JavaScript高级:原型与原型链继承方式

在 JavaScript 中&#xff0c;继承是一种重要的概念&#xff0c;它使得对象可以从其他对象继承属性和方法&#xff0c;实现代码的重用和扩展。原型与原型链是 JavaScript 中实现继承的核心机制&#xff0c;虽然听起来有些高深&#xff0c;但我们可以通过通俗易懂的方式来理解它…...

使用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.下移/左移/右移&#xff0c;只是取数据的方向不同06.提高可读性 01.程序结构划分 02.去零 有序向量“唯一化”的思路。 /// <summary>/// 去零/// </summary>/// <param name"row">对于一行或一…...

设计模式(5)代理模式

一、介绍&#xff1a; 【Subject/抽象角色】定义了RealSubject和Proxy的共用接口&#xff0c;这样就可以在任何使用RealSubject的地方都可以使用Proxy 【RealSubject/真实角色】定义Proxy所代表的真实实体 【Proxy/代理角色】保存一个引用使得代理可以访问实体&#xff0c;并…...

Django配置(部署环境较乱,暂时启用)

django配置 web服务器中部署项目及WSGI简介 web服务器 WSGI 在IIS中部署django项目 安装 wfastcgi &#xff1a;pip install wfastcgi安装IIS&#xff1a; 以上选择项勾选后确定 将CGI文件复制到项目中&#xff0c; 将项目复制到IIS默认目录中 部署IIS 添加变量信息如下…...

【设计模式】桥接模式

桥接&#xff08;Bridge&#xff09;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 这种模式涉及到一个作为桥接的接口&#xff0c;使得…...

ol问题总结二

一、加载坐标系是4326格式的&#xff0c;使用wfsServer发布的服务&#xff0c;图层加载失败&#xff1b;坐标系是3857格式的。图层加载正常 原因&#xff1a;4326格式的&#xff0c;发布出来的&#xff0c;经纬度是颠倒的 解决方案一&#xff1a;将经纬度进行反转 <templa…...

批量打印-----jsPDF将图片转为pdf,并合并pdf

安装依赖并引入 import jsPDF from jspdf; import { PDFDocument, } from pdf-lib;注意一、 使用jspdf将图片&#xff08;jpg/jpeg/png/bmp&#xff09;转pdf&#xff08;记为pdfA&#xff09;&#xff0c;得到的pdf&#xff08;pdfA&#xff09;和需要合并的pdf(记为pdfB)类…...

【Git】版本控制器详解之git的概念和基本使用

版本控制器git 初始Gitgit的安装git的基本使用初始化本地仓库配置本地仓库三区协作添加---add修改文件--status|diff版本回退--reset撤销修改删除文件 初始Git 为了能够更⽅便我们管理不同版本的⽂件&#xff0c;便有了版本控制器。所谓的版本控制器&#xff0c;就是⼀个可以记…...

C语言 棱形图案

目录 一、问题分析 上部分&#xff1a; 下部分&#xff1a; 二、代码演示 一、问题分析 如上图所示&#xff0c;我们可以将棱形进行拆解&#xff0c;分为上下两个部分。 上部分&#xff1a; 通过观察&#xff0c;我们得到 单边空格数 上半部分总行数 - 行数 - 1 …...

在idea使用GitHub账号、Copilot异常

登录GitHub显示这样的信息&#xff1a; Invalid authentication data.Connection refused: connect Failed to initiate the GitHub login process. Please try again. 修改hosts&#xff08;C:\Windows\System32\drivers\etc\hosts&#xff09;&#xff0c;添加以下参数即可…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...