Description
Input
Output
Sample Input
2 3 ABCD BCDFF BRCD 2 rose orchid
Sample Output
2 2
#include<iostream> #include<algorithm> #include<string> using namespace std; const int INF = 0x3f3f3f3f; string str[110]; int main() { int kase,n; int minl=INF; int minpos; cin >> kase; while(kase--) { minl = INF; cin >> n; for(int i = 0; i < n; i++) { cin >> str[i]; if(str[i].length() < minl) { minl = str[i].length(); minpos = i; } } string key = str[minpos]; string tem, rev; for(int i = minl; i >= 1; i--) //取字符串长度 { for(int j = 0; j + i -1 < minl; j++) { tem = string( key.begin() + j, key.begin() + j + i ); rev = string( tem.rbegin(), tem.rend() ); bool flag = true; for(int k = 0; k < n; k++) { if(str[k].find( tem ) == string::npos && str[k].find( rev ) == string::npos) { flag = false; break; } } if(flag) { printf( "%d\n", i ); goto here; } } } printf( "0\n" ); here:; } return 0; }
原文:http://blog.csdn.net/maxichu/article/details/46314655