好吧,这题直接搜索就可以了,不过要按照长度最短的来搜,很容易想得到。
记得ACM比赛上有这道题,呃。。不过,直接搜。。呵呵了,真不敢想。
1 #include <iostream> 2 #include <cstdio> 3 #include <string.h> 4 #include <algorithm> 5 using namespace std; 6 7 char str[105][105]; 8 char s1[105],s2[105]; 9 10 int main(){ 11 int T; 12 scanf("%d",&T); 13 while(T--){ 14 int n; int min_p,minl=1000; 15 scanf("%d",&n); 16 for(int i=1;i<=n;i++){ 17 scanf("%s",str[i]); 18 int tmp=strlen(str[i]); 19 if(minl>tmp){ 20 min_p=i; minl=tmp; 21 } 22 } 23 for(int i=1;i<=minl;i++){ 24 bool flag=false; 25 for(int k=0;k<=minl-i;k++){ 26 int p; 27 for(p=0;p<i;p++){ 28 s1[p]=str[min_p][k+p]; 29 s2[i-p-1]=str[min_p][k+p]; 30 } 31 s1[p]=s2[p]='