洛谷B3843 [GESP202306 三级] 密码合规 题解

洛谷B3843 [GESP202306 三级] 密码合规 题解

原题传送门

前言

咳咳,由于本人最近在备考GESP三级,所以可能会有很多水的题解。(见谅……见谅……)

由于今天刚刚重新刷了一遍此题,所以记忆犹新。(太菜了!一个测试点都能 WA )

题目解析

简单的四点!

这题是要让我们判断密码是否合法。

判断条件1:只能由 \(\texttt {a ∼ z}\) 之间 26 个小写字母、 \(\texttt {A ∼ Z}\) 之间 26 个大写字母、\(0 ∼ 9\) 之间 \(10\) 个数字以及 ! @ # $ 四个特殊字符构成。

判断条件2:密码最短长度 : \(6\) 个字符,密码最大长度 : \(12\) 个字符。

判断条件3:大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。

思路解析

这道题只要弄懂了题意,就非常简单,做个模拟,就行了。(你做错的那次纯属眼瞎)

呵呵……

Code

点击查看代码

#include

using namespace std;

string s;

string t;

void chack(string a){

int AB=0,ab=0,ze=0,on=0;

if(a.length()>12||a.length()<6){

return;

}

for(int i=0;i

if(!((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')||(a[i]>='0'&&a[i]<='9')||(a[i]=='!')||(a[i]=='@')||(a[i]=='#')||(a[i]=='$'))){

return ;

}

if(a[i]>='a'&&a[i]<='z') ab=1;

if(a[i]>='A'&&a[i]<='Z') AB=1;

if(a[i]>='0'&&a[i]<='9') ze=1;

if((a[i]=='!')||(a[i]=='@')||(a[i]=='#')||(a[i]=='$')) on=1;

}

if(ab+AB+ze>=2 && on==1){

cout<

}

}

int main(){

cin>>s;

s=s+',';

for(int i=0;i

if(s[i]==','){

chack(t);

t="";

}else{

t+=s[i];

}

}

return 0;

}

完结撒花!(快去做题,害隔着抄答案呢!)

猜你喜欢

gtx850m显卡多少钱gtx850m显卡参数配置多少【详细介绍】
best365体育正不正规

gtx850m显卡多少钱gtx850m显卡参数配置多少【详细介绍】

📅 07-12 ❤️ 550
apex英雄多少g 游戏内存大小介绍
365提款问题

apex英雄多少g 游戏内存大小介绍

📅 07-14 ❤️ 352
ups国际快递怎么样(国际快递公司简介)
best365体育正不正规

ups国际快递怎么样(国际快递公司简介)

📅 10-06 ❤️ 775
note3手写笔
GBT36507-2018

note3手写笔

📅 07-25 ❤️ 933
为什么都说学编程重要
365提款问题

为什么都说学编程重要

📅 08-04 ❤️ 135
广西富川:潇贺古道穿村而过 岔山村靠乡村游踏上致富路
瑶字五行属什么
best365体育正不正规

瑶字五行属什么

📅 07-13 ❤️ 749
倩女幽魂手游服务器维护多久,倩女手游维护到几点 倩女幽魂要维护到几点看系...
Intel Xeon Gold 6134 @ 3.20GHz
GBT36507-2018

Intel Xeon Gold 6134 @ 3.20GHz

📅 07-03 ❤️ 727