题解 | #把数字翻译成字符串#

把数字翻译成字符串

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]
}

全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务