求最长回文子串
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
string a;
getline(cin,a);
int max = 0;
int length = a.size();
for(int i = 0; i < length; i++)
{
for(int j = 0; i - j >= 0 && i + j < length; j++)
{
if(a[i-j] != a[i+j])
{
break;
}
if(max < 2*j + 1)
{
max = 2*j + 1;
}
}
for(int j = 0; i - j >= 0 && i+j+1 < length; j++)
{
if(a[i-j] != a[i+j+1])
{
break;
}
if(max < 2*j + 2)
{
max = 2*j+2;
}
}
}
cout<<max<<endl;
return 0;
}
本文提供了一种使用C++实现的寻找字符串中最长回文子串的方法。通过两个嵌套循环,分别检查奇数长度和偶数长度的回文子串,找出最长的那个。此算法适用于需要快速判断字符串中是否存在较长回文子串的应用场景。
107

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



