#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
void printset(set<int>& s)
{
set<int>::iterator it = s.end();
it--;
cout << *it << endl;
}
int main()
{
string a;
cin >> a;
set<int>s;
int count = 0;
for (int i = 0; i < a.size(); i++)
{
for (int j = 1; j < a.size(); j++)
{
if (j > i)
{
string b = a.substr(i, j + 1);
if (b.size() %2== 0)
{
string c = b;
count++;
for (int k = 0; k < count; k++)
{
string f1 = c.substr(0, c.size() / 2);
string f2 = c.substr(c.size() / 2, c.size());
reverse(f2.begin(),f2.end());
int a = f1.compare(f2);
if (a == 0)
{
s.insert(c.size());
}
}
}
}
}
}
printset(s);
return 0;
}
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。
最新推荐文章于 2023-06-11 09:36:29 发布
本文介绍了一段C++代码,通过递归和字符串操作,检查子串是否为回文并计算出现次数,最终将结果存入一个集合并按大小排序。程序涉及字符串切片、子串比较和C++标准库set的使用。

409

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



