639. Decode Ways II
雖然競賽時(shí)候這道題AC了童擎,不過寫的code 狗啃一般族阅,找了一個(gè)清爽的答案昼伴,不過感覺比較難想到
class Solution(object):
def numDecodings(self, s):
"""
:type s: str
:rtype: int
"""
S = s
MOD = 10**9 + 7
e0, e1, e2 = 1, 0, 0
for c in S:
if c == '*':
f0 = 9*e0 + 9*e1 + 6*e2
f1 = e0
f2 = e0
else:
f0 = (c > '0') * e0 + e1 + (c <= '6') * e2
f1 = (c == '1') * e0
f2 = (c == '2') * e0
e0, e1, e2 = f0 % MOD, f1, f2
return e0