初学者,直接暴力判断重复

#include<stdio.h>
#include<string.h>
 
int main(){
    char str[1000];
    int i,j;
    int len,flag;//flag是判断是否有重复
    int a1,a2,a3,a4;//每一种类型
    while(scanf("%s", str) != EOF)
    {
        len=strlen(str);
        a1=0;
        a2=0;
        a3=0;
        a4=0;
        if(len < 9)
        {
            printf("NG\n");
        }
        else
        {
            for(i=0; i<len; i++)
            {
                if(str[i] >= 'a' && str[i] <= 'z')
                {
                    a1=1;
                }
                else if(str[i] >= 'A' && str[i] <= 'Z')
                {
                    a2=1;
                }
                else if(str[i] >= '0' && str[i] <= '9')
                {
                    a3=1;
                }
                else
                {
                    a4=1;
                }
            }
            if(a1+a2+a3+a4 < 3)
            {
                printf("NG\n");
            }
            else
            {
                flag = 0;
                for(i=0; i < len-6; i++)
                {
                    for(j=i+3; j < len-3; j++)
                    {
                        if(str[j]==str[i]&&str[j+1]==str[i+1]&&str[j+2]==str[i+2])
                        {
                            flag = 1;
                            
                        }
                    }
                }
                if(flag == 1)
                {
                    printf("NG\n");
                }
                else
                {
                    printf("OK\n");
                }
            }
        }
    }
}