题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <stdio.h> #include <string.h> int main() { int a, b; char str[105]; while (scanf("%s", str) != EOF) { // 注意 while 处理多个 case int len=strlen(str); if(len<=8){ printf("NG\n"); continue; } int n1=0,n2=0,n3=0,n4=0; for(int i=0;str[i]!='\0';i++) { if(str[i]>='A'&&str[i]<='Z'){ n1=1; } else if(str[i]>='a'&&str[i]<='z'){ n2=1; } else if(str[i]>='0'&&str[i]<='9'){ n3=1; } else{ n4=1; } } int num=0; if(n1){ num++; } if(n2){ num++; } if(n3){ num++; } if(n4){ num++; } if(num<3){ printf("NG\n"); continue; } int flag=1; for(int i=3;i<len-1;i++) for(int j=0;j<len-i;j++){ for(int k=j+1;k<len-i+1;k++){ int flag2=0; for(int l=0;l<i;l++) if(str[j+l]!=str[k+l]){ flag2=1; break; } if(flag2==0){ flag=0; } } } if(flag==0){ printf("NG\n"); continue; } printf("OK\n"); } return 0; }