描述
该题来自于力扣第91题
分析
假设s为
所以这是个动态规划问题,记dp[i]表示从0字符串不能转码;而
dp[i] = dp[i-1] + dp[i-2]
只满足其中一个,另一个就不加到结果上即可,最后注意边界条件就好。
代码
class Solution:
def numDecodings(self, s: str) -> int:
dp = [0]*len(s)
for i in range(len(s)):
if s[i] != '0':
dp[i] += dp[i-1] if i > 0 else 1
if i > 0 and '10' <= s[i-1:i+1] <= '26':
dp[i] += dp[i-2] if i > 1 else 1
return dp[len(s)-1]
继续这个系列