思路:

将长字符串分为奇数和偶数来处理

若为奇数-利用双指针从中间往两边移动,最后 截取对应片段对比放入res 中(偶数指针起始位置不同)

 

代码:

class Solution {
public:
    string longestPalindrome(string s) {
        string res;
        for(int i=0;i<s.size();i++)
        {
            //奇数
            for(int j=i,k=i;j>=0 && k<s.size() && s[j]==s[k];j--,k++)
                if(res.size()<k-j+1)
                    res=s.substr(j,k-j+1);
            //偶数
            for(int j=i,k=i+1;j>=0 && k<s.size() && s[j]==s[k];j--,k++)
                if(res.size()<k-j+1)
                    res=s.substr(j,k-j+1);
        }
        return res;
    }
};