密码

http://acm.hdu.edu.cn/showproblem.php?pid=2043

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10834    Accepted Submission(s): 4356

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
3 a1b2c3d4 Linle@ACM ^~^@^@!%
Sample Output
NO YES NO

#include<stdio.h>
#include<string.h>
int main()
{int M,i,t,a,b,c,d,sum;char s[60];while(scanf("%d",&M)!=EOF){while(M--){scanf("%s",s);t=strlen(s);if(t<8||t>16){printf("NO\n");continue;}a=b=c=d=sum=0;for(i=0;s[i]!='\0';i++){if(s[i]>='A'&&s[i]<='Z')a=1;else if(s[i]>='a'&&s[i]<='z')b=1;else if(s[i]>='0'&&s[i]<='9')c=1;else if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')d=1;}sum=a+b+c+d;if(sum>=3)printf("YES\n");elseprintf("NO\n");}}return 0;
}

转载于:https://www.cnblogs.com/pcoda/archive/2011/05/16/2104571.html

杭电acm2043密码相关推荐

  1. 杭电oj2043密码

    Problem Description 网上流传一句话:"常在网上飘啊,哪能不挨刀啊-".其实要想能安安心心地上网其实也不难,学点安全知识就可以. 首先,我们就要设置一个安全的密码 ...

  2. 杭电第七次作业c语言短学期,杭电短学期:算法与编程.doc

    杭电短学期:算法与编程.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  3. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

  4. HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)

    今年寒假打算用Java把杭电2000-2099全部AC(现在持续更新),如下是题目链接,之后是我的题解,全部做完后我会把所有AC的题解打包上传的 题号 题名 题号 题名 2000 ASCII码排序 2 ...

  5. 数字杭电之抢课系统分析

    最近一段时间突发其想打算做个类似携程抢火车票一样的云抢课平台,项目做了一大半突然看见新闻有人做帮其他人抢火车票的生意被逮起来的.而且云抢课平台一旦做起来,学校的土豆服务器肯定分分钟崩溃,到时候学校肯定 ...

  6. 杭电选课脚本(一)登录选课系统

    序 又到了学期末,选课的时间到了,中国的大学系统你懂得,卡,每次到了抢课时间,总是又卡又慢,半天刷不出来一个网站,如何写一个脚本,到了抢课时间运行一下,可以省时省力.这一篇只是伪登陆,后续的选课不知道 ...

  7. 【HDU100】杭电入门一百道 C++ 全 题 解

    " Ctrl AC!一起 AC!" 题目集合链接:HDU2000-2099http://acm.hdu.edu.cn/listproblem.php?vol=11 前言 1. 好像 ...

  8. hdoj杭电问题分类

    杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...

  9. Linux常用命令总结(基于杭电泛雅平台)-Linux(13)

    前言 总结一下杭电泛雅平台以及我认为的比较重要的Linux命令吧,真实一个浩大的工程. 点击命令可以查看详细的用法 文件管理 命令 作用 touch 新增文件:修改文件时间属性 mkdir 新增目录 ...

最新文章

  1. Linux下C++开发工具介绍
  2. SAP WM 采购订单收货后LT06报错-No bin types have been assigned to storage unit type IP-
  3. 中科大计算机应用,中科大2012计算机应用专业考研初试考什么
  4. 图标字体iconfont的使用
  5. 设计模式之单件模式(Singleton Pattern)
  6. 吴恩达|机器学习作业6.1.SVM建立垃圾邮件分类器
  7. Python学习系列----第六章 数据结构
  8. 弗洛伊德算法(floyd)
  9. Wannafly挑战赛4,C题割草机,(模拟)
  10. 密码学朋克宣言(1993)
  11. 三星官方smdkv210 uboot移植到我的s5pv210开发板
  12. 计算机数字媒体计数专业好就业吗,2019数字媒体技术专业就业形势和就业方向分析...
  13. 微信小程序添加开发者、赋予权限、添加体验者
  14. 优秀的python库_一个优秀Python库,轻松吟诗作对写文章!
  15. Redis的使用场景有哪些?
  16. 山外论坛每日一贴的学习
  17. 【案例分享】高效率利器 - SC 频谱分析仪
  18. nfc免root写卡,nfc真正免root的
  19. Element-UI框架多个el-input标签并排
  20. Python基于OpenCV的智能交通灯系统(南北车流量比例)[源码&部署教程]

热门文章

  1. Rhel7 Ldap为本地用户认证方式,设置域、服务器位置和下载key
  2. windows 10 快速修复
  3. ASP.NET温故而知新学习系列之ASP.NET多线程编程—异步编程(九)
  4. php 打印测试技巧
  5. 学习OCS客户端定制
  6. C#的显式接口和隐式接口
  7. PHP类中的__get()和__set函数到底有什么用
  8. Node.js aitaotu图片批量下载Node.js爬虫1.00版
  9. 简单工厂模式--加减乘除运算
  10. java面试题(开发框架)