2
2
6
[0][1][2]
dp
·
·
·
·
[0][1][2][3]
DP over prefixes
▸1def numDecodings(s):2 dp = [0] * (n + 1)3 dp[0] = 1 # empty prefix: one way4 for i in 1..n:5 if s[i−1] != '0': # one-digit letter6 dp[i] += dp[i−1]7 if i >= 2 and 10 <= int(s[i−2:i]) <= 26:8 dp[i] += dp[i−2] # two-digit letter9 return dp[n]
state
- s"226"
- asknumber of decodings