Problem
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”
Solution
class Solution {
public:
string longestPalindrome(string s) {
int n=s.size();
string res="";
int l=0;
res=s[0];
vector<vector<bool>> dp(n, vector<bool>(n));
for (int j = 0; j<n; j++)
{
for (int i=j;i>=0;i--)
{
if((s[i] == s[j]) && (j - i <= 2 || dp[i + 1][j - 1]))
{
dp[i][j]=true;
if(j-i>l)
{
res=s.substr(i,j-i+1);
l=j-i;
}
}
}
}
return res;
}
};
来源:力扣