#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
int t, n, i;
cin >> t;
while(t--)
{
string s[101];
cin >> n;
int len = 1000, j = 0, max, f = 0;
for(i = 0; i < n; i++)
{
cin >> s[i];
if(s[i].size() < len)
{
len = s[i].size();
j = i;
}
}
max = len;
string str;
str = s[0];
s[0] = s[j];
s[j] = str;
while(len)
{
for(i = 0; i + len <= max; i++)
{
str = s[0].substr(i, len);
for(j = 1; j < n; j++)
if(s[j].find(str) == -1)
break;
if(j == n)
{
f = 1;
break;
}
char t;
for(j = 0; j < len / 2; j++)
{
t = str[j];
str[j] = str[len - 1 - j];
str[len - 1 -j] = t;
}
for(j = 1; j <=n; j++)
if(s[j].find(str) == -1)
break;
if(j == n)
{
f = 1;
break;
}
}
if(f)
break;
len--;
}
cout << len << endl;
}
return 0;
}HDU 1238 Substring
C++代码解决字符串排序与查找问题
最新推荐文章于 2021-07-21 16:03:18 发布
本文介绍了一段使用C++实现的代码,该代码通过读取输入的字符串数组,找出最短的字符串,并对其进行排序。进一步,程序会检查排序后的字符串数组中是否存在特定的子串,若存在则输出其长度;若不存在,则继续调整字符串数组直到找到符合条件的子串。此过程体现了C++在字符串处理与查找方面的应用。

159

被折叠的 条评论
为什么被折叠?



