AcWing 59. 把数字翻译成字符串-暴力递归
原题链接
中等
作者:
semicloud
,
2024-03-15 20:27:15
,
所有人可见
,
阅读 15
/**
* @param {string} s
* @return {number}
*/
var getTranslationCount = function(s) {
// 返回从s[i]开始有多少种转化结果
function process(i) {
// 走到字符串末尾,发现一种转换结果
if (i === s.length) return 1;
if (s[i] === '1') {
// '1'本身可以转换为b,然后继续后面的转换,拿到转换结果数
let res = process(i + 1);
// '1'和它后面的数总能组成一个转换,然后继续后面的转换,拿到转换结果数.
if (i + 1 < s.length) {
res += process(i + 2);
}
return res;
}
if (s[i] === '2') {
let res = process(i + 1);
if (i + 1 < s.length && (s[i + 1] >= '0' && s[i + 1] <= '5')) {
res += process(i + 2);
}
return res;
}
// 其他的0、3-9都直接转换,返回后面的转换结果
return process(i + 1);
}
return process(0);
};