#include <stdio.h>
#include <string.h>
void judge(char *s, int *upper, int *lower, int *digit, int *special) {
int len, i;
len = strlen(s);
for (i = 0; i < len; ++ i) {
if (s[i] >= 'A' && s[i] <= 'Z')
*upper = 1;
else if (s[i] >= 'a' && s[i] <= 'z')
*lower = 1;
else if (s[i] >= '0' && s[i] <= '9')
*digit = 1;
else if (s[i] == '~' || s[i] == '!' || s[i] == '@'
|| s[i] == '#' || s[i] == '$' || s[i] == '%' || s[i] == '^')
*special = 1;
}
}
int
main(int argc, char **argv) {
int ncase, flag;
char passwd[60];
int has_upper, has_lower, has_digit, has_special;
scanf("%d", &ncase);
while (ncase--) {
scanf("%s", passwd);
flag = (strlen(passwd) >= 8 && strlen(passwd) <= 16?1:0);
has_upper = has_lower = has_digit = has_special = 0;
judge(passwd, &has_upper, &has_lower, &has_digit, &has_special);
if (!has_upper) {
printf("%s\n", (has_lower&&has_digit&&has_special&&flag?"YES":"NO"));
}
else if (!has_lower) {
printf("%s\n", (has_upper&&has_digit&&has_special&&flag?"YES":"NO"));
}
else if (!has_digit) {
printf("%s\n", (has_upper&&has_lower&&has_special&&flag?"YES":"NO"));
}
else if (!has_special) {
printf("%s\n", (has_upper&&has_lower&&has_digit&&flag?"YES":"NO"));
}
else printf("%s\n", (has_upper&&has_lower&&has_digit&&has_special&&flag?"YES":"NO"));
}
return 0;
}
HDU2043 密码
最新推荐文章于 2020-03-26 22:53:29 发布