跳到主要内容

LCR165.解密数字

链接:LCR165.解密数字
难度:Medium
标签:字符串、动态规划
简介:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

题解 1 - typescript

  • 编辑时间:2020-06-09
  • 执行用时:60ms
  • 内存消耗:32.4MB
  • 编程语言:typescript
  • 解法介绍:递归判断当前值是否<=25 不是则分段计算。
function translateNum(num: number): number {
if (num < 10) return 1;
else if (num <= 25) {
return 2;
} else if (num < 100) {
return 1;
} else {
const s = num.toString();
const subNum2 = Number(s.substr(0, 2));
let num2 = 0;
if (subNum2 <= 25) num2 = translateNum(Number(s.substr(2)));
return translateNum(Number(s.substr(1))) + num2;
}
}