leetcode 05
class Solution {
public:
string longestPalindrome(string s) {
if ( s.length() < 2) {
return s;
}
bool dp[1005][1005];
memset(dp, false, sizeof(dp));
int maxlen = 1;
int ansl = 0, ansr = 0;
for (int r = 1; r < s.length(); r++)
{
for (int l = 0; l < r; l++)
{
if (s[l] == s[r] && (r - l <= 2 || dp[l + 1][r - 1]))
{
dp[l][r] = true;
// printf("%d %d\n", l, r);
if (r - l + 1 > maxlen)
{
maxlen = r - l + 1;
ansl = l;
ansr = r;
}
}
}
}
return s.substr(ansl, maxlen); //substr yongfa
}
};