
/**
* @param {string} s
* @return {number}
*/
var countSubstrings = function(s) {
let dp=new Array(s.length).fill('').map(()=>new Array(s.length).fill(false));
let num=0;
for(let i=0;i<s.length;i++){
for(let j=0;j<=i;j++){
//在首尾相等时,如果长度时1或者2,或者去掉收尾字符串时回文
if(s[i]===s[j]&&(i-j<2||dp[j+1][i-1])){
dp[j][i]=true;
num++;
}
}
}
return num;
};
动态规划

该篇文章介绍了如何利用动态规划方法解决一个计数问题,计算给定字符串中回文子串的数量。代码中定义了一个二维数组dp来跟踪子串是否是回文,通过遍历字符串并更新dp数组,最终返回回文子串的总数。
933

被折叠的 条评论
为什么被折叠?



