美文网首页Leedcode
5. Longest Palindromic Substring

5. Longest Palindromic Substring

作者: 凉拌姨妈好吃 | 来源:发表于2018-06-04 11:57 被阅读0次
image.png

思路:有两种情况,一种情况是回文串为abba,另一种情况是回文串为aba。让右指针与自己的下一位比较,如果相等,就是第一种情况,那么我们就将右指针往后移一位。如果不相等,我们再比较右指针与左指针,如果相等,左指针向前移动,右指针向后移动。

class Solution {
public:
    string longestPalindrome(string s) {
        
        if (s.size() < 2)
            return s;
        int left,right,maxlen = 0,maxleft=0;
        for(int i=0;i<s.size()&&(s.size()-i>maxlen/2);)
        {
            left=right=i;
            //如果右指针与它下一位相等,那么右指针往后移动。
            while(right<s.size()-1&&s[right]==s[right+1])
                ++right;
            i = right+1;
            while(right<s.size()-1&& left > 0&&s[left-1]==s[right+1])
            {
                --left;
                ++right;
            }
            if(maxlen<right-left+1)
            {
                maxleft =left;
                maxlen = right-left+1;
            }
                    
        }
        return s.substr(maxleft,maxlen);
    }      
};

相关文章

网友评论

    本文标题:5. Longest Palindromic Substring

    本文链接:https://www.haomeiwen.com/subject/pvpesftx.html