找相同的公共子串,若相同,输出考后的子串
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
char str[10][100];
char fin[100];
char temp[100];
int n;
int judge()
{
int i;
for(i = 1;i < n;i++){
if(strstr(str[i],temp)==0){//strstr(a,b),a中找b,如果b存在,返回b的地址,不存在,返回NULL
return 0;
}
}
return 1;
}
int main()
{
int t;
scanf("%d", &t);
int k;
int flag;
int i, j;
while(t--){
flag = 0;
scanf("%d", &n);
for(i = 0;i < n;i++){
scanf("%s", str[i]);
}
k = 3;
while(k <= 60){
for(i = 0;i <= 60-k;i++){
for(j =0;j < k;j++){
temp[j] = str[0][i+j];
}
temp[j] = '\0';
if(judge()){
flag = 1;
strcpy(fin,temp);
}
}
k++;
}
if(flag){
printf("%s\n", fin);
}else {
printf("no significant commonalities\n");
}
}
return 0;
}