纯C
#include <stdlib.h>
#include <stdio.h>
void judge_char(char c, int *flag)
{
if(c >= 'A' && c <= 'Z') flag[0]=1;
else if(c >= 'a' && c <= 'z') flag[1]=1;
else if(c >= '0' && c <= '9') flag[2]=1;
else flag[3]=1;
}
int main()
{
char * str = (char *)malloc(sizeof(char )*50);
while(gets(str))
{
char *pstr=str;
int len=strlen(str), sum=0;
if(len<=8)
{
printf("NG\n");
continue;
}
int count[4] = {0};
int flag=0; //用于判断是否终止循环
for(int i=0; i<(len-4); i++)
{
for(int j=i+1; j<(len-3); j++)
{
if(strncmp(pstr+i, pstr+j, 3) == 0)
{
flag=1;
printf("NG\n");
break;
}
}
if(flag) break;
judge_char(str[i], count);
}
if(flag) continue;
//再加上后面的4个字符判断
for(int i=len-4; i<len; i++)
{
judge_char(str[i], count);
}
for(int i=0; i<4; i++)
{
sum+=count[i];
}
if(sum >=3) printf("OK\n");
else printf("NG\n");
}
free(str);
return 0;
}