Open Tcdian opened 4 years ago
/**
* @param {number} num
* @return {number}
*/
var translateNum = function(num) {
const str = String(num);
const dp = new Array(str.length + 1);
for (let i = 0; i <= str.length; i++) {
if (i <= 1) {
dp[i] = 1;
continue;
}
const twoDigits = Number(str.slice(i - 2, i));
if ( twoDigits <= 25 && twoDigits > 9) {
dp[i] = dp[i - 1] + dp[i - 2];
} else {
dp[i] = dp[i - 1];
}
}
return dp[str.length];
};
function translateNum(num: number): number {
const str = String(num);
const dp: number[] = new Array(str.length + 1);
for (let i = 0; i <= str.length; i++) {
if (i <= 1) {
dp[i] = 1;
continue;
}
const twoDigits = Number(str.slice(i - 2, i));
if ( twoDigits <= 25 && twoDigits > 9) {
dp[i] = dp[i - 1] + dp[i - 2];
} else {
dp[i] = dp[i - 1];
}
}
return dp[str.length];
};
剑指 Offer 46. 把数字翻译成字符串
给定一个数字,我们按照如下规则把它翻译为字符串:
0
翻译成“a”
,1
翻译成“b”
,……,11
翻译成“l”
,……,25
翻译成“z”
。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。Example
Note
0 <= num < 2
31