Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8866 Accepted Submission(s): 4157
2 3 ABCD BCDFF BRCD 2 rose orchid
2 2
/************************************************************************* > File Name: Substrings.cpp > Author: Zhanghaoran > Mail: [email protected] > Created Time: 2016年02月23日 星期二 12时39分07秒 ************************************************************************/ #include#include #include #include #include #include using namespace std; int T; int n; string str[110]; int main(void){ cin >> T; while(T --){ cin >> n; int len = 110; int len_pos = 0; for(int i = 0; i < n; i ++){ cin >> str[i]; if(len > str[i].size()){ len = str[i].size(); len_pos = i; } } int ans = 0; bool flag = false; for(int i = len; i >= 1 && !flag; i --){ for(int j = 0; i + j <= len && !flag; j ++){ string testa = str[len_pos].substr(j, i); string temp = testa; string testb = temp.assign(temp.rbegin(), temp.rend()); for(int k = 0; k < n; k ++){ if(k == len_pos) continue; if(str[k].find(testa) == -1 && str[k].find(testb) == -1){ flag = true; break; } } if(!flag){ flag = true; ans = i; } else flag = false; } } cout << ans << endl; } }
查看原文:http://chilumanxi.org/2016/02/23/hdu-1238-substrings/