Blue Jeans(串)
http://poj.org/problem?id=3080
寻找最长公共子串。。暴搜的。。
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int t,n; 6 char s[12][62],ss[62],str[62]; 7 scanf("%d",&t); 8 while(t--) 9 { 10 scanf("%d%*c",&n); 11 int i,j,k; 12 for (i = 0; i < n; i ++) 13 { 14 scanf("%s",s[i]); 15 } 16 int max_len = 0; 17 for (i = 0; i < 60; i ++) 18 { 19 for (j = i; j < 60; j ++) 20 { 21 int t = 0; 22 for (k = i; k <= j; k ++) 23 { 24 ss[t++] = s[0][k]; 25 } 26 ss[t] = '\0'; 27 for (k = 1; k <= n; k ++) 28 { 29 if (strstr(s[k],ss)==NULL) break; 30 } 31 if (k==n && t > max_len) 32 { 33 max_len = t; 34 strcpy(str,ss); 35 } 36 else if (k==n && t==max_len) 37 { 38 if (strcmp(str,ss)>0) 39 strcpy(str,ss); 40 } 41 } 42 } 43 if (max_len < 3) 44 printf("no significant commonalities\n"); 45 else 46 printf("%s\n",str); 47 } 48 return 0; 49 }

浙公网安备 33010602011771号