判断每个子串是否符合,符合就与最小长度比较
#include<stdio.h>
#include<string.h>
int serach(char t[],char p,int b,int e)
{
int j,n=strlen(t);
for(j=0; j<n; j++)
{
if(t[j]==p)
{
return j;
}
}
return -1;
}
int f1(char t[],int b,int e)
{
if(serach(t,'1',b,e)>=0&&serach(t,'2',b,e)>=0&&serach(t,'3',b,e)>=0)
{
return 1;
}
return 0;
}
int f(char t[])
{
int j,k,h,d,len=strlen(t),min=2;
for(j=0; j<len; j++)
{
for(k=0; k<len; k++)
{
if(k-j>=3&&f1(t,j,k)==1&&k-j<min)
{
min=k-j;
}
}
}
return min+1;
}
int main()
{
char t[200000];
gets(t);
printf("%d",f(t));
return 0;
}
请说一下你的思路