Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17777
  • 博文数量: 11
  • 博客积分: 267
  • 博客等级: 二等列兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-20 21:56
文章分类

全部博文(11)

文章存档

2011年(11)

我的朋友

分类: C/C++

2011-11-07 16:18:26

就一暴力题。。。(一开始还以为是kmp呢)

  1. #include <stdio.h>
  2. #include <string.h>

  3. char str[101][101];

  4. int main()
  5. {
  6.     int t, n;
  7.     int i, j, k;
  8.     int len;
  9.     int l;
  10.     char s1[101];
  11.     char s2[101], s3[101];
  12.     scanf("%d", &t);
  13.     while(t--) {
  14.     scanf("%d", &n);
  15.     getchar();

  16.     len = 200;
  17.     for( i=0; i<n; i++ ) {
  18.      scanf("%s", str[i]);
  19.      if( (l=strlen(str[i])) < len ) {
  20.         strcpy(s1, str[i]);
  21.         len = l;
  22.      }
  23.     }    
  24. #if 0
  25.     printf("%d s1: %s\n", len, s1);
  26. #endif
  27.     for( i=len; i>=1; i-- ) {
  28.      for( j=0; j+i<=len; j++ ) {
  29.         for( k=0; k<i; k++) {
  30.          s2[k] = s1[j+k];
  31.          s3[k] = s1[j+i-1-k];
  32.         }
  33.         s2[k] = 0;
  34.         s3[k] = 0;
  35. #if 0
  36.         printf("s2: %s s3: %s \n", s2, s3);
  37. #endif
  38.         for(k=0; k<n; k++) {
  39.          if( (!strstr(str[k], s2)) && (!strstr(str[k], s3)) )
  40.             break;
  41.         }

  42.         if( k==n ) {
  43.          printf("%d\n", i);
  44.          break;
  45.         }
  46.      }
  47.      if( j+i <= len )
  48.         break;
  49.     }
  50.     if( i==0 )
  51.      printf("0\n");
  52.     }
  53.     return 0;
  54. }

阅读(515) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~