647. 回文子串
解题思路
代码实现
var countSubstrings = function(s) {
var dp = new Array(s.length).fill().map(()=>new Array(s.length).fill(false));
var result =0;
for (let i=s.length-1;i>=0;i--){
for(let j=i;j<s.length;j++){
if(s[i] ===s[j]){
if(j-i<=1){
dp[i][j] = true;
result++;
}else if(dp[i + 1][j - 1]){
dp[i][j] = true;
result++;
}
}
}
}
return result;
};
516.最长回文子序列
解题思路
代码实现
var longestPalindromeSubseq = function(s) {
var dp = new Array(s.length).fill().map(()=>new 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]
};