解题思路 i位肯定能转换成字母,dp[i]=dp[i-1]; i-1和i (11)在满足条件count>9&&count<26的前提下,dp[i]=dp[i-2]; 这两种情况都满足的话,dp[i]=dp[i-1]+dp[i-2] //类似斐波那契数列 /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 解码 * @param nums string字符串 数字串 * @return int整型 */ function solve( nums ) { // write code here let arr = nums.split(''); let len = arr.length; if(len===1&&arr[0]==='0')return 0 let dp = Array.from({length:len+1},()=>1); for(let i = 1;i<len;i++){ if(arr[i]==='0'){ dp[i]=0; } dp[i+1] = dp[i]; let count = Number(arr[i-1]+arr[i]); if(count>9&&count<27){ dp[i+1] =dp[i]+dp[i-1] } } return dp[len] } module.exports = { solve : solve };