Problem : 1238 ( Substrings )     Judge Status : AcceptedRunId : 5677664    Language : C++    Author : ssun
Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main()
{
int t,n;
string ss[110];
scanf("%d",&t);
while(t--)
{
int i,j,k,max=0;
scanf("%d",&n);
for(i=0; i<n; i++)
{
cin>>ss[i];
}
for(i=0; i<ss[0].size(); i++)
{
string temp;
for(j=1; j<=ss[0].size()-i; j++)
{
temp.assign(ss[0],i,j);
// cout<<temp<<endl;
for(k=1; k<n; k++)
{
if(ss[k].find(temp,0)==-1) break;
}
if(k==n && j>max) max = j;
for(k=1; k<n; k++)
{
string s = ss[k];
reverse(s.begin(),s.end());
// cout<<s<<endl;
if(s.find(temp,0)==-1) break;
}
if(k==n && j>max) max = j;
}
}
printf("%d\n",max);
}
return 0;
}