题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <stdio.h> #include <string.h> int main() { char m[100]; while (gets(m)) { int len = strlen(m); int k[4] = {0}; for (int i = 0; i < len - 1; i++) { if ( m[i] >= 'A' && m[i] <= 'Z') { k[0] = 1; } else if ( m[i] >= 'a' && m[i] <= 'z') { k[1] = 1; } else if ( m[i] >= '0' && m[i] <= '9') { k[2] = 1; } else if ( m[i] == ' ' || m[i] == '\n') { k[0] = 0; k[1] = 0; k[2] = 0; k[3] = 0; break; } else { k[3] = 1; } } //printf("%d %d %d %d",k[0],k[1],k[2],k[3]); int c = 0; for (int i = 0; i < len - 4; i++) { for (int j = i+3; j < len - 1; j++) { if (m[i] == m[j] && m[i + 1] == m[j + 1] && m[i + 2] == m[j + 2]) { //printf("%d %d ",i,j); c = 1; break; } } } //printf("%d",c); int kind = k[0] + k[1] + k[2] + k[3]; //printf("%d",kind); if (len >= 9 && kind >= 3 && c == 0) { printf("OK\n"); } else { printf("NG\n"); } } return 0; }