Easiest Code to understand....Time- O(N^2),Space O(N)


#1
void lenSubarray(string& s, int i, int j, string& ans) {
        while(j >= 0 && i < (int)s.size()) {
            if(s[i] == s[j]) {
                i++;
                j--;
            }
            else {
                i--;
                j++;
                break;
            }
        }
        if(i == (int)s.size() || j == -1) {
            i--;
            j++;
        }
        if(i - j + 1 > (int)ans.size()) ans = s.substr(j, i - j + 1);
    }
string Solution::longestPalindrome(string s) {
    string ans = "";
        for(int i = 0; i < (int)s.size(); i++) { 
            lenSubarray(s, i, i, ans);
            if(i < (int)s.size() - 1) lenSubarray(s, i, i + 1, ans);
        }
        return ans;
}