Hdu 2043(水题)解题报告
来源:互联网 发布:金开贷网络借贷 编辑:程序博客网 时间:2024/06/05 03:40
Problem Description
网上流传一句话:"常在网上飘啊,哪能不挨刀啊~"。其实要想能安安心心地上网其实也不难,学点安全知识就可以。
首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件:
(1).密码长度大于等于8,且不要超过16。
(2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。
这四个字符类别分别为:
1.大写字母:A,B,C...Z;
2.小写字母:a,b,c...z;
3.数字:0,1,2...9;
4.特殊符号:~,!,@,#,$,%,^;
给你一个密码,你的任务就是判断它是不是一个安全的密码。
Input
输入数据第一行包含一个数M,接下有M行,每行一个密码(长度最大可能为50),密码仅包括上面的四类字符。
Output
对于每个测试实例,判断这个密码是不是一个安全的密码,是的话输出YES,否则输出NO。
Sample Input
3a1b2c3d4Linle@ACM^~^@^@!%
Sample Output
NOYESNO
直接暴力破解;
代码:
#include<iostream>#include<algorithm>#include<cstring>using namespace std;int flag[4];char password[51];int main(void){ int M; scanf("%d",&M); while(M--) { memset(flag,0,sizeof(flag)); scanf("%s",password); int len = strlen(password); if(len<8||len>16) { printf("NO\n"); continue;} for(int i=0;i<len;++i) { if(password[i]<=90&&password[i]>=65) flag[0]++; else if(password[i]>=97&&password[i]<=122) flag[1]++; else if(password[i]>=48&&password[i]<=57) flag[2]++; else flag[3]++; } int count = 0; for(int i=0;i<4;++i) if(flag[i]>0) count++; if(count>=3) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- Hdu 2043(水题)解题报告
- Hdu 2039(水题) 解题报告
- Hdu 2040(水题) 解题报告
- Hdu 2041(水题)之解题报告
- Hdu 2042(水题)之解题报告
- HDU 3342 解题报告
- HDU 3336 解题报告
- HDU 3335 解题报告
- hdu 2516解题报告
- hdu 1004解题报告
- hdu 2139解题报告
- hdu 1019解题报告
- hdu 1064 解题报告
- HDU 1113 解题报告
- hdu 1068 解题报告
- HDU:2050解题报告
- hdu 4001解题报告
- hdu 1005解题报告
- Linux常用命令
- 转义字符
- linux系统下安装Tomcat
- .NET学习(七)linq的使用
- libvirt/qemu特性之快照
- Hdu 2043(水题)解题报告
- IOS开发——获取本地音频文件(属性/信息)
- C++ 程序问题检查
- tansform
- ViwResolver&View
- getCudaEnabledDeviceCount()返回0
- EditText——(简单登录页面)
- [Android开发]简单版仿淘口令复制弹出框功能
- hadoop 使用HA后java api连接获取 FileSystem