给定一个字符串 s
,找到 s
中最长的回文子串。你可以假设 s
的最大长度为 1000。
示例 1:
输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。
示例 2:
输入: "cbbd" 输出: "bb"
class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
// dp[i][j] 表示下标为i到j的字符串是否为回文,下标从0开始
vector<vector<bool>> dp(len,vector<bool>(len,false));
for(int i=0;i<len;i++){
dp[i][i] = true;
if(i<len-1)
dp[i][i+1] = (s[i] == s[i+1]);
}
for(int i=2;i<len;i++){
for(int j=0;j<len-i;j++){
dp[j][i+j] = dp[j+1][i&#