1
var numDecodings = function (s) {3
if (len === 0) return s;4
let mod = Math.pow(10, 9) + 7;5
let dp = new Array(len + 1).fill(0);7
if (s[0] == 0) dp[1] = 0;8
else if (s[0] == "*") dp[1] = 9;10
for (let i = 2; i <= len; i++) {11
if (s[i - 1] == "*") {12
dp[i] += 9 * dp[i - 1];13
} else if (s[i - 1] != 0 && s[i - 1] != "*") {17
if (s[i - 1] == "*") dp[i] += 9 * dp[i - 2];18
else dp[i] += dp[i - 2];19
} else if (s[i - 2] == 2) {20
if (s[i - 1] < 7) dp[i] += dp[i - 2];21
else if (s[i - 1] == "*") dp[i] += 6 * dp[i - 2];22
} else if (s[i - 2] == "*") {23
if (s[i - 1] == "*") dp[i] += 15 * dp[i - 2];24
else if (s[i - 1] >= 0 && s[i - 1] <= 6) dp[i] += 2 * dp[i - 2];25
else if (s[i - 1] >= 7) dp[i] += dp[i - 2];