代码随想录:最长回文子序列
class Solution {
public:
int longestPalindromeSubseq(string s) {
int len = s.length();
vector<vector<int>> dp =
vector<vector<int>>(len+1, vector<int>(len+1, 0));
for (int i = len; i >= 1; i--) {
for (int j = i; j <= len; j++) {
if(i==j){
dp[i][j] = 1;
continue;
}
if(s[i-1]==s[j-1]){
dp[i][j] = dp[i+1][j-1]+2;
}else{
dp[i][j] = max(dp[i+1][j],dp[i][j-1]);
}
}
}
return dp[1][len];
}
};