参考资料:
[1]题目:https://leetcode-cn.com/problems/longest-palindromic-substring/solution/
[2]编程之法:C++面试和算法心得
注意:
//substr的格式是substr(开始,长度);
class Solution {
public:
string longestPalindrome(string s) {
int c=0;
int nLen =s.size();
int nMax=0;
int nStart=0;
int nEnd=0;
int nmStart=0;
int nmEnd=0;
for(int i=0;i<nLen;i++)
{
for(int j=0;((i-j)>=0)&&((i+j)<nLen);j++)
{
if(s[i-j]!=s[i+j])
break;
c=2*j+1;
nStart=i-j;
nEnd=i+j;
}
if(c>nMax)
{
nMax=c;
nmStart=nStart;
nmEnd=nEnd;
}
for(int j=0;((i-j)>=0)&&((i+j+1)<nLen);j++)
{
if(s[i-j]!=s[i+j+1])
break;
c=2*j+2;
nStart=i-j;
nEnd=i+j+1;
}
if(c>nMax)
{
nMax=c;
nmStart=nStart;
nmEnd=nEnd;
}
}
//substr的格式是substr(开始,长度);
return s.substr(nmStart,nMax);
}
};