Longest Palindromic Substring(C++)

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example 1:

Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.

Example 2:

Input: "cbbd"
Output: "bb"

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         {
            string s1=expand(s,i,i);
            if(lon.size()                 lon=s1;
            string s2=expand(s,i,i+1);
            if(lon.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);
    }
};

你可能感兴趣的:(leetcode)