zoukankan      html  css  js  c++  java
  • (HDOJ 2043)密码

    密码


    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

     
       AC code:

      #include<stdio.h>

    #include<math.h>
    #include
    <ctype.h>
    #include
    <string.h>
    #include
    <stdlib.h>

    int main()
    {
         
    int n,a[6];
         
    char c;
         scanf(
    "%d%*c",&n);
         
    while(n--){
         a[
    0]=a[1]=a[2]=a[3]=a[4]=a[5]=0;
         
    while((c=getchar())!='\n'){
              
    if(isupper(c))
                a[
    0]=a[5]++;
              
    else if(islower(c))
                a[
    1]=a[5]++;
              
    else if(isdigit(c))
                a[
    2]=a[5]++;
              
    else
                a[
    3]=a[5]++;
             }
             
    if(a[0]) a[4]++;
             
    if(a[1]) a[4]++;
             
    if(a[2]) a[4]++;
             
    if(a[3]) a[4]++;
          puts(a[
    4]>2 && a[5]>7 && a[5]<17 ? "YES":"NO"); 
         
             }
          
    return 0;
    } 

    作者:cpoint
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    开源框架/软件汇总
    如何查看Maven项目的jar包依赖
    我的前端技术栈(2018版)
    解决在Mac上用pyenv安装python3失败的问题
    学习jenv
    学习sbtenv
    解决MAC下修改系统文件没权限的问题
    学习Spring Boot
    学习音标
    C# 对List中的Object进行排序
  • 原文地址:https://www.cnblogs.com/cpoint/p/2026607.html
Copyright © 2011-2022 走看看