

class Solution {
public:
string longestPalindrome(string s)
{
string ret="";
for(int i=0;i<s.size();i++)
{
//分别找出以i为中心,以及以i+1为中心的回文数
string a=Palidrome(s,i,i);
string b=Palidrome(s,i,i+1);
ret=ret.size()>a.size()? ret:a;
ret=ret.size()>b.size()? ret:b;
}
return ret;
}
string Palidrome(string s,int l,int r)
{
while(l>=0 && r<s.size() && s[l]==s[r])
{
l--;
r++;
}
//此时的l和r都是不合理的数字,要想合理,需要都往回缩一格
l++;
r--;
return s.substr(l,r-l+1);
}
};
该博客主要讨论了一种寻找字符串中最大回文子串的方法。通过遍历字符串,检查以每个字符为中心的单字符和双字符回文,并比较它们的长度,找到最长的回文串。算法实现了动态规划的思想,对于回文串的查找具有较高的效率。
1029

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



