题解 | #把数字翻译成字符串#
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 解码 * @param nums string字符串 数字串 * @return int整型 */ export function solve(nums: string): number { // 状态转移方程:dp[i] = dp[i - 1] + dp[i - 2],需要分情况 if(nums === '0')return 0 if(nums === '10' || nums === '20')return 1 //当0前面不是1或者不是2时,不能编译 for(let i = 1;i < nums.length;i++){ if(nums[i] === '0'){ if(nums[i-1] !== '1' && nums[i-1] !== '2')return 0 } } //进行初始化dp const dp = new Array(nums.length +1).fill(1) console.log(dp) //遍历 for(let i = 2;i <= nums.length;i++){ if(nums[i-2] === '1'&&nums[i-1] !== '0' || nums[i-2] === '2'&&nums[i-1] >'0'&&nums[i-1] < '7'){ dp[i] = dp[i-1] + dp[i-2] }else{ dp[i] = dp[i-1] } } return dp[nums.length] }