pku 1226 Substrings
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXN 102
#define MAXLEN 205
char in[MAXN][MAXLEN],tmp[MAXLEN],shot[MAXLEN];
inline bool solve(int n,char *pat)
{
int i,j,t;
for(i=1; i<n; i++)
{
if(!strstr(in[i],pat))
{
t=strlen(in[i]);
j=0;
t--;
while(t>=0) tmp[j++]=in[i][t--];
tmp[j]=0;
// printf("tmp=%s\n",tmp);
if(!strstr(tmp,pat)) return false;
}
}
return true;
}
int main()
{
int T,n,i,j,k,g,len,ans;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
scanf("%s",in[0]);
if(n==1)
{
printf("%d\n",strlen(in[0]));
continue;
}
len=strlen(in[0]);
ans=0;
for(i=1; i<n; i++) scanf("%s",in[i]);
for(i=0; i<len; i++)
{
for(j=i; j<len; j++)
{
g=0;
for(k=i; k<=j; k++)
{
shot[g++]=in[0][k];
}
shot[g]=0;
// printf("%s\n",shot);system("pause");
if( solve(n,shot) && g>ans )
ans=g;
}
}
printf("%d\n",ans);
}
return 0;
}
浙公网安备 33010602011771号