hdu-2043解题报告

时间:2022-02-08 19:56:39

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2043

题意解析:目的是判断一串密码是否安全,条件是满足1.大写字母:A,B,C...Z;   2.小写字母:a,b,c...z;     3.数字:0,1,2...9;        4.特殊符号:~,!,@,#,$,%,^;四种类型符号中的三种。

做题思路:最好是定义四个flag变量来进行标记,满足一个条件,就使 flag=1,只要满足有 4个flag之和大于等于3就为安全密码;

代码实现:

#include <stdio.h>
#include <string.h>
int main()
{
  int m,i,j,len;
  int flag1,flag2,flag3,flag4;
  char s[];
  scanf("%d",&m);
  while(m--)
  {
    scanf("%s",s);
    flag1=;
    flag2=;
    flag3=;
    flag4=;
    len=strlen(s);
    for(i=;i<len;i++)
    {
      j=i+;////////////////////////////用于记录密码的字符数
      if('a'<=s[i]&&s[i]<='z')
      {
         flag1=;
      }
      if('A'<=s[i]&&s[i]<='Z')
      {
         flag2=;
       }
       if(''<=s[i]&&s[i]<='')
       {
        flag3=;
       }
       if(s[i]=='~'||s[i]=='!'||s[i]=='@'||s[i]=='#'||s[i]=='$'||s[i]=='%'||s[i]=='^')
         flag4=;
     }
     if(flag1+flag2+flag3+flag4>=&&j>=&&j<=)/////////////////////////////////////关键条件:保证密码有三种字符,同时密码的字符数在8-16个之间
       printf("YES\n");
    else
       printf("NO\n");
   }
  return ;
}