📄 1238.cpp
字号:
#include<iostream>
#include<string>
using namespace std;
unsigned min_index;
char s[101][101];
int match(int begin,int end,int num){
int flag,i,j,r,k,n;
for(n=0;n<num;n++){
for(flag=0,k=0;!flag&&k<=strlen(s[n])-(end-begin+1);k++){
int sign_1=1,sign_2=1;
for(i=k,j=begin;j<=end;i++,j++)
if(s[n][i]!=s[min_index][j]){
sign_1=0;
break;
}
for(i=k,r=end;r>=begin;i++,r--)
if(s[n][i]!=s[min_index][r]){
sign_2=0;
break;
}
if(sign_1==1||sign_2==1)
flag=1;
}
if(flag==0)
return 0;
}
return 1;
}
int main()
{
int m,n,i,j,min;
cin>>m;
while(m--){
cin>>n;
memset(s,0,sizeof(s));
for(i=0;i<n;i++)
cin>>s[i];
min=strlen(s[0]);
min_index=0;
for(i=1;i<n;i++)
if(strlen(s[i])<min){
min=strlen(s[i]);
min_index=i;
}
for(i=min;i>0;i--)
for(j=0;j<=min-i;j++)
if(match(j,i+j-1,n)==1){
cout<<i<<endl;
goto end;
}
if(i==0)
cout<<0<<endl;
end:
continue;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -