第九十六天:剑指offer 46题,把数字翻译成字符串
地址:leetcode-cn.com/problems/ba…
思路:动态规划
var translateNum = function(num) {
if (num == 0) return 1;
let str = num.toString();
const length = str.length;
let dp = new Array(length).fill(0);
dp[0] = 1;
for(let i = 1; i < length; i++){
let temp = Number(str[i-1] + str[i]);
if (10 <= temp && temp <= 25){
if (i > 1)
dp[i] = dp[i-1] + dp[i-2];
else
dp[i] = 1 + dp[i-1];
}else {
dp[i] = dp[i-1];
}
}
return dp.pop();
};
执行用时:80 ms, 在所有 JavaScript 提交中击败了71.61%的用户
内存消耗:38.1 MB, 在所有 JavaScript 提交中击败了16.56%的用户