最长回文子序列 leetcode 516
class Solution { public: int longestPalindromeSubseq(string s) { int len=s.size(); if(len==0) return 0; vector<vector<int>> dp(len,vector<int>(len,1)); for(int i=1;i<len;i++) { for(int j=0;j<len-1;j++) { if(i==1) { if(j+i<len&&s[j]==s[j+i]) { dp[j][j+i]=2; } } else { if(j+i<len) { if(s[j]==s[j+i]) { dp[j][j+i]=dp[j+1][j+i-1]+2; } else { dp[j][j+i]=max(dp[j+1][j+i],dp[j][j+i-1]); } } } } } return dp[0][len-1]; } };
posted on 2020-03-09 18:33 QingFengDaHui 阅读(125) 评论(0) 编辑 收藏 举报