/**
* @param {string} s
* @return {number}
*/
var numDecodings = function(s) {
const len = s.length;
if (len === 1) {
if (s === '*') {
return 9;
} else if (s === '0') {
return 0;
}
return 1;
}
if (len === 2) {
const basic = numDecodings(s[0]) * numDecodings(s[1]);
console.log(basic, s, '111');
if (s[0] === '0') {
console.log('aaa');
return 0;
} else if (s === '**') {
console.log('bbb');
return basic + 15;
} else if ((s[0] = '*' && s[1] !== '*')) {
console.log('ccc');
const lastNum = parseInt(s[1], 10);
return lastNum > 6 ? basic + 1 : basic + 2;
} else if (s[0] !== '*' && s[1] === '*') {
console.log('ddd');
const firstNum = parseInt(s[0], 10);
if (firstNum > 2) return basic;
if (firstNum === 1) return basic + 9;
return basic + 6;
}
console.log('----');
const num = parseInt(s, 10);
console.log(num, '222222')
return (num > 26 || num === 0) ? basic : basic + 1;
}
return numDecodings(s.substring(0, len - 2)) * numDecodings(s.substring(len - 2))
+ numDecodings(s.substring(0, len - 1)) * numDecodings(s.substring(len - 1))
};
// console.log(numDecodings('2*'))
console.log(numDecodings('10'))
console