-
647. 回文子串
【思路】
var countSubstrings = function(s) { let dp = new Array(s.length).fill().map(() => Array(s.length).fill(false)), nums = 0; for (let j = 0; j < s.length; j++) { for (let i = 0; i <= j; i++) { if (s[i] === s[j]) { if (j - i < 2) dp[i][j] = true else dp[i][j] = dp[i + 1][j - 1]; } nums += dp[i][j] ? 1 : 0; } } return nums; };
-
516. 最长回文子序列
【思路】
var longestPalindromeSubseq = function(s) { let num = 0, dp = new Array(s.length).fill().map(() => Array(s.length).fill(0)); for (let i = 0; i < s.length; i++) dp[i][i] = 1; for (let i = s.length - 1; i >= 0; i--) { for (let j = i + 1; j < s.length; j++) { if (s[i] === s[j]) { dp[i][j] = dp[i + 1][j - 1] + 2; } else dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]); } } return dp[0][s.length - 1]; };
参考代码随想录:https://www.programmercarl.com/