string c++部分成员函数
s.find(p)//在s中查找p,成功返回所在位置,失败返回-1;
s.substr(n,len) //从n位置起获取len个字符;
reverse(a,b)//反转从a到b位置的字符顺序;
#include <bits/stdc++.h>
using namespace std;
int found(string s,string p){
string _s=s;
reverse(s.begin(),s.end());
if(p.find(s)!=-1||p.find(_s)!=-1) return 1;
return 0;
}
int key()
{
string s[101];
int n;
cin>>n;
string ss;
int min=9999999;
for(int i=0;i<n;i++)
{
cin>>s[i];
int l=s[i].length();
if(l<min){
ss=s[i];
min=l;
}
}
int len=min;
while(min){
int x=len-min;
for(int i=0;i<=x;i++){
int flag=1;
string str=ss.substr(i,min);
for(int i=0;i<n;i++){
if(!found(str,s[i])) {
flag=0;
break;
}
}
if(flag) {
//cout<<"str"<<str<<endl;
return min;
}
}
min--;
}
return 0;
}
int main(){
int m;
cin>>m;
while(m--){
cout<<key()<<endl;
}
}