题解 | #密码验证合格程序#
密码验证合格程序
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;
}
