题解 | #密码检查#
密码检查
https://www.nowcoder.com/practice/f2fbd8f61c564ca0b5feaa63ab42dae5
#include<stdio.h>
#include<string.h>
int main()
{
int n = 0;//行数
scanf("%d", &n);
again:
while (n--)
{
int flag[3] = { 0 };//大写 小写 数字 各占一个,出现了加一,总和至少要两种
char arr[101] = { '\0' };
scanf("%s", arr);
int len = strlen(arr);
//解决2.4条件
if ((arr[0] < '9' && arr[0] > '0') || len < 8)
{
printf("NO\n");
continue;
}
//解决1.3条件
for (int i = 0; i < len; ++i)
{
if ((arr[i] <= '9' && arr[i] >= '0') || (arr[i] >= 'A' && arr[i] <= 'Z') || (arr[i] >= 'a' && arr[i] <= 'z'))
{
if (arr[i] <= '9' && arr[i] >= '0')
{
flag[0] = 1;
}
if (arr[i] >= 'A' && arr[i] <= 'Z')
{
flag[1] = 1;
}
if (arr[i] >= 'a' && arr[i] <= 'z')
{
flag[2] = 1;
}
}
else
{
printf("NO\n");
goto again;
}
}
if (2 <= flag[0] + flag[1] + flag[2])
{
printf("YES\n");
}
else
printf("NO\n");
}
}
