dp[i][j]存放的是[i,j]是否是迴文區間
dp[i][j]=dp[i+1][j-1]&&(s[i]==s[j])去除兩端之間的子串是迴文子串,且兩端相等
class Solution {
public:
string longestPalindrome(string s) {
int maxn=0,len=s.length();
string res="";
if(!len) return res;
if(len==1) return s;
res=s[0];
bool dp[1010][1010]={false};
for(int j=0;j<len;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>maxn)
{
maxn=j-i;
res=s.substr(i,j-i+1);
}
}
return res;
}
};