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] = '';
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
");
45         else
46             printf("%s
",str);
47     }
48     return 0;
49 }
View Code
原文地址:https://www.cnblogs.com/lahblogs/p/3268195.html