C++ || Non-DP || Expand from center
class Solution {
public:
    
    string longestPalindrome(string s) {
        int n = s.length();
        // Case 1 : Even length Palindromic string
        int mlen = 0;
        string res = "";
        for(int i = 0;i<n-1;i++){
            int l = i;
            int r = i+1;
            while(l>=0 && r <n){
                if(s[l]!=s[r])
                    break;
                l--;
                r++;
            }
            if(mlen < r-l-1){
                mlen = r-l-1;
                res = s.substr(l+1,mlen);
            }
            // mlen = max(mlen,r-l-1);
        }
        //Case 2 : Odd length Palindromic string 
        for(int i = 0;i<n;i++){
            int l = i;
            int r = i;
            while(l>=0 && r <n){
                if(s[l]!=s[r])
                    break;
                l--;
                r++;
            }
            if(mlen < r-l-1){
                mlen = r-l-1;
                res = s.substr(l+1,mlen);
            }
        }
        return res;
    }
};
Comments (0)