#include <stdio.h> int main() { char str[100]={'\0'}; while(scanf("%s",&str)!=EOF) { int type[4]={0};//各种种类的密码是否出现过 int dif=0;//记录密码中字符的种类 int len=0;//密码串的长度 char substr[3]={'\0'};//记录长度为3的子串 int sub=0;//记录是否有长度超过2的重复子串 int i,j,k=0; len=strlen(str); //含有的字符种类判断 for(i=0;i<len;i++) { if(str[i]>='A'&&str[i]<='Z') type[0]=1; else if(str[i]>='a'&&str[i]<='z') type[1]=1; else if(str[i]>='0'&&str[i]<='9') type[2]=1; else type[3]=1; } dif=type[0]+type[1]+type[2]+type[3]; //判断是否有重复的子串 for(i=0;i<(len-3);i++) { substr[0]=str[i];substr[1]=str[i+1];substr[2]=str[i+2]; for(j=i+3;j<(len-3);j++) { if(str[j]==substr[0]) { if(str[j+1]==substr[1]) { if(str[j+2]==substr[2]) { sub=1; } } } } } //总判断是否符合要求 if(sub==0&&dif>=3) { if(len>8) printf("OK\n"); else printf("NG\n"); } else printf("NG\n"); } return 0; }