class Solution {
public:
int longestPalindromeSubseq(string s) {
vector<vector<int>> dp(s.length(), vector<int>(s.length(), 0));
int res = 1;
for(int i = 0; i < s.length(); i++)
dp[i][i] = 1;
for(int i = s.length() - 1; i >= 0; i--){
for(int j = i + 1; j < s.length(); j++){
if(s[i] == s[j])
dp[i][j] = dp[i + 1][j - 1] + 2;
else if(i != s.length() - 1)
dp[i][j] = max(dp[i][j - 1], dp[i + 1][j]);
if(dp[i][j] > res)
res = dp[i][j];
}
}
return res;
}
};
08-27
411
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-24
895
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-24