题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <stdio.h> #include <string.h> //代码感觉还是有点复杂了,总而言之就是先判断len,然后看种类,最后看有无重复子串 int main() { char code[101] = { 0 }; char kind = 0; int flag = 0; while (scanf("%s", code) != EOF) { int len = strlen(code); if (len <= 8) { printf("NG\n"); break; } else { int i = 0; int A = 0; int a = 0; int num = 0; int f = 0; for (i = 0; i < len; i++) { kind = code[i]; if (kind >= 'A' && kind <= 'Z') A = 1; else if (kind >= 'a' && kind <= 'z') a = 1; else if (kind >= '0' && kind <= '9') num = 1; else if (kind != ' ') f = 1; } flag = A + a + num + f; if (flag < 3) printf("NG\n"); else { int flag2 = 0; for (i = 0; i < len; i++) { if (i < len - 3) { char str[4] = { 0 }; char strfull[101] = { 0 }; strncpy(str, &code[i], 3); strcpy(strfull, code); memset(&strfull[i], ' ', 3); char* p = strstr(strfull, str); if (p != NULL) { flag2 = 1; } } } if(flag2==1) printf("NG\n"); else printf("OK\n"); } } } return 0; }