题解 | #密码强度等级#

密码强度等级

https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361

//用代码量换取思路简单性,就是粗暴的一种一遍历
#include <stdio.h>
#include<string.h>
int main()
{
    char arr[300];
    gets(arr);
    int i=0,flag[4]={0,0,0,0},count=0,sc=25,sz=strlen(arr);
  //判断长度
    if(sz<8)
    {
        sc=((sz-1)/4+1)*5;
    }
  //查找数字
    for(i=0;i<sz;i++)
    {
        if(arr[i]>='0'&&arr[i]<='9')
        {
            flag[0]=1;
            count++;
            if(count>1)
            {
                sc+=20;
                count=0;
                break;
            }
        }
    }
    if(count==1)
    {
        sc+=10;
        count=0;
    }
  //查找小写字母
    for(i=0;i<sz;i++)
    {
        if(arr[i]>='a'&&arr[i]<='z')
        {
            flag[1]=1;
            sc+=10;
            break;
        }
    }
  //查找大写字母
    for(i=0;i<sz;i++)
    {
        if(arr[i]>='A'&&arr[i]<='Z')
        {
            flag[2]=1;
            sc+=10;
            break;
        }
    }
  //查找特殊符号
    for(i=0;i<sz;i++)
    {
        if((arr[i]>=0x21&&arr[i]<=0x2f)||(arr[i]>=0x3A&&arr[i]<=0x40)||(arr[i]>=0x5B&&arr[i]<=0x60)||(arr[i]>=0x7B&&arr[i]<=0x7E))
        {
            flag[3]=1;
            count++;
            if(count>1)
            {
                sc+=25;
                count=0;
                break;
            }
        }
    }
    if(count==1)
    {
        sc+=10;
    }
    if(flag[0]==1&&(flag[1]==1||flag[2]==1))
    {
        sc+=2;
        if(flag[3]==1)
        {
            sc+=1;
            if(flag[1]==1&&flag[2]==1)
            {
                sc+=2;
            }
        }
    }
    if(sc>=90)
    {
        printf("VERY_SECURE\n");
    }
    if(sc>=80&&sc<90)
    {
        printf("SECURE\n");
    }
    if(sc>=70&&sc<80)
    {
        printf("VERY_STRONG\n");
    }
    if(sc>=60&&sc<70)
    {
        printf("STRONG\n");
    }
    if(sc>=50&&sc<60)
    {
        printf("AVERAGE\n");
    }
    if(sc>=25&&sc<50)
    {
        printf("WEAK\n");
    }
    if(sc>=0&&sc<25)
    {
        printf("VERY_WEAK\n");
    }
    return 0;
}

全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务