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

把数字翻译成字符串

http://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668

我就不明白了 怎么就不行了呢? 爬个楼梯嘛

 /**
 * 解码
 * @param nums string字符串 数字串
 * @return int整型
 */
// function solve( nums ) {
//     // write code here
//     let a=1
//     let b=1 
//     for(let i=2;i<=nums.length;i++){
//         let canDivide=nums.slice(i-2,i) 
//         let c 
//         if(canDivide>10&&canDivide<=25){
//             c=a+b
//         }else{
//            c=a  
//         }
//         b=a
//         a=c    
//     }
//     return a 
// }
/**
 * 解码
 * @param nums string字符串 数字串
 * @return int整型
 */
function solve( nums ) {
    // write code here
    let len = nums.length;
    let dp = new Array(len);//dp[i]表示在 当前i位置上有多少种译码的可能。
    dp[0] = 1;
    for(let i = 1;i<len;i++){
        let twoN = parseInt(nums.slice(i-1,i+1));
    if(i === len - 1 && nums[i] == 0 && twoN > 26){
        dp[i] = 0;   
    }else if(nums[i] == 0 || twoN > 26 || nums[i-1] == 0){
            dp[i] = dp[i-1];
        }else{
            dp[i] = i>= 2 ? dp[i-1] + dp[i-2] : dp[i-1] + 1;
        }
    }
    return dp[len - 1];
    
}
module.exports = {
    solve : solve
};

全部评论
twoN只要出现00或者30、40这种特殊情况就会卡住无法译码,直接break 返回0
点赞
送花
回复
分享
发布于 2023-10-25 14:33 天津

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务