关闭

hdu2043

151人阅读 评论(0) 收藏 举报

密码

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


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
 

Author
linle
 
水题,写四个if语句就ok啦!
代码:
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;


int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int x=0,y=0,z=0,o=0;
        char s[55];
       scanf("%s",s);
        int len=strlen(s);
        if(len<8||len>16)
        {
            printf("NO\n");
            continue;
        }
        for(int i=0;i<len;i++)
        {
            if(s[i]>='a'&&s[i]<='z')
                x=1;
            if(s[i]>='A'&&s[i]<='Z')
               y=1;
            if(s[i]>='0'&&s[i]<='9')
                 z=1;
            if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')
                o=1;
        }


        if((x+y+z+o)>2)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

0
0
查看评论

HDU2043

题目出自杭电 #include <stdio.h> #include <string.h> int main() { int m,i,l; char mima[50]; int f1,f2,f3,f4,f5; while(~scanf(&qu...
  • joeycom2
  • joeycom2
  • 2016-04-10 21:49
  • 217

HDU 2043 密码(判断字符串存在性)

密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 45796  ...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-05-07 14:10
  • 650

HDU 2043 - 密码

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2043 #include #include int main(void) { int n, a[6]; char c; scanf("%d%*c",...
  • a1006570862
  • a1006570862
  • 2013-11-29 14:54
  • 654

HDU2043密码

密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40467  ...
  • xu_fish
  • xu_fish
  • 2015-11-29 19:04
  • 198

hdu2043 密码

密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 29618  ...
  • ling_du
  • ling_du
  • 2014-07-26 12:04
  • 325

HDU2043 密码

#include #include void judge(char *s, int *upper, int *lower, int *digit, int *special) { int len, i; len = strlen(s); for (i = 0; i &l...
  • u011626066
  • u011626066
  • 2015-01-30 10:04
  • 248

hdu2043密码

密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 22475   ...
  • guodongxiaren
  • guodongxiaren
  • 2013-05-26 19:05
  • 1276

HDU2043密码的可行性

#include<stdio.h> #include<string.h> int main() { bool flage; int m,n; int i; int a,b,c,d; char s[55]; scanf("...
  • Arthur_Holmes
  • Arthur_Holmes
  • 2016-10-23 15:38
  • 152

hdu2043 密码(C语言)

Problem Description 网上流传一句话:"常在网上飘啊,哪能不挨刀啊~"。其实要想能安安心心地上网其实也不难,学点安全知识就可以。 首先,我们就要设置一个安全的密码。那什么样的密码才叫安全的呢?一般来说一个比较安全的密码至少应该满足下面两个条件: (1)....
  • sinat_39591298
  • sinat_39591298
  • 2017-07-27 10:12
  • 112

暑期二 (C)(hdu2043)

原题 密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46458 &...
  • u012910051
  • u012910051
  • 2016-06-27 11:09
  • 143
    个人资料
    • 访问:32168次
    • 积分:1924
    • 等级:
    • 排名:千里之外
    • 原创:166篇
    • 转载:1篇
    • 译文:0篇
    • 评论:10条
    最新评论