Longest Palindromic Substring(C++)

class Solution {
public:
    string longestPalindrome(string s) 
    {
        int n=s.size();
        if(n==0)
            return "";
        string lon=s.substr(0,1);
        for(int i=0;i<n-1;i++)
        {
            string s1=expand(s,i,i);
            if(lon.size()<s1.size())
                lon=s1;
            string s2=expand(s,i,i+1);
            if(lon.size()<s2.size())
                lon=s2;
        }
        return lon;
    }
    string expand(string s,int i,int j)
    {
        int l=i,r=j,n=s.size();
        while(l>=0&&r<=n-1&&s[l]==s[r])
        {
            l--;
            r++;
        }
        return s.substr(l+1,r-l-1);
    }
};

猜你喜欢

转载自blog.csdn.net/zrh_csdn/article/details/80325912