C++ || O(n^2) solution ||


#1

string Solution::longestPalindrome(string s) {
    int n = s.length();
    if(n <= 1){
        return s;
    }
    int start = 0,end = 0;
    int max_len = 1;
    
    // for odd length
    for(int i=0;i<n;i++){
        int lo = i;
        int hi = i;

        while(lo>=0 and hi<n){
            if(s[lo] == s[hi]){
                lo--;
                hi++;
            }
            else
                break;
        }
        if(hi - lo - 1>max_len){
            start = lo + 1;
            max_len = hi - lo - 1;
        }
    }
    // for even length
    for(int i=0;i<n - 1;i++){
        int lo = i;
        int hi = i+1;

        while(lo>=0 and hi<n){
            if(s[lo] == s[hi]){
                lo--;
                hi++;
            }
            else
                break;
        }
        if(hi - lo - 1>max_len){
            start = lo + 1;
            max_len = hi - lo - 1;
        }
    }
    return s.substr(start,max_len);
}