题解 | #把数字翻译成字符串#
把数字翻译成字符串
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
};