91. 解码方法
解法一:dp
class Solution:
def numDecodings(self, s: str) -> int:
n = len(s)
if n == 0 or s[0] == '0':
return 0
dp = [0] * (n+1)
dp[0] = 1 #辅助,没有实际意义
for i in range(n):
if s[i] == '0':
dp[i+1] = 0
else:
dp[i+1] = dp[i] #f(n) = f(n-2)
if i > 0 and (s[i-1] == '1' or (s[i-1] == '2' and s[i] <= '6')):
dp[i+1] += dp[i-1] #f(n) = f(n-2)+f(n-1)
return dp[n]最后更新于