题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
int checksame(int*a,int n) { char arr[3]={0}; char*str=a; for(int i=0;i<n;i++) { strncpy(arr,str,3); char*pos=a; for(int j=0;j<n-3;j++) { if(j!=i && strncmp(arr,pos,3)==0) return 1; pos++; } str++; } return 0; } int judge(char*a,int len) { int count=0; if(len<=8) return 0; int x=0,y=0,b=0,c=0; for(int i=0;i<len;i++) { if(isdigit(a[i])) x=1; else if(isupper(a[i])) b=1; else if(islower(a[i])) c=1; else y=1; } if(x+y+b+c<3) return 0; if(checksame(a,len)) return 0; return 1; } int main() { char arr[101]={0}; while(scanf("%s",arr) !=EOF) { int len=strlen(arr); if(judge(arr,len)) printf("OK\n"); else printf("NG\n"); } return 0; }