<p>Given a string <code>s</code>, return <em>the longest</em> <span data-keyword="palindromic-string"><em>palindromic</em></span> <span data-keyword="substring-nonempty"><em>substring</em></span> in <code>s</code>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> s = &quot;babad&quot;
<strong>Output:</strong> &quot;bab&quot;
<strong>Explanation:</strong> &quot;aba&quot; is also a valid answer.
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> s = &quot;cbbd&quot;
<strong>Output:</strong> &quot;bb&quot;
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>1 &lt;= s.length &lt;= 1000</code></li>
	<li><code>s</code> consist of only digits and English letters.</li>
</ul>

class Solution {
public:
    bool pallindrome(int i, int j, string &s) {
        while(i <= j) {
            if(s[i] != s[j])
                return false;
            i++;
            j--;
        }
        return true;
    }
    string longestPalindrome(string s) {
        vector<pair<int, int>> sub;
        int n = s.length();
        for(int i = 0; i < n; i++)
            for(int j = i; j < n; j++)
                sub.push_back({i, j});
        
        int maxL = 0;
        string str = "";
        for(auto p : sub) {
            int i = p.first, j = p.second;
            if(pallindrome(i, j, s)) {
                if(j - i + 1 > maxL) {
                    maxL = j - i + 1;
                    str= s.substr(i, j - i + 1);
                }
            }
        }
        return str;
    }
};
283104