class Solution:
def numDecodings(self , s ):
# write code here
if s == '' or s[0] == '0':
return 0
dp = [1]*(len(s) + 1)
dp[1] = 1
for i in range(1,len(s)):
count = 0
if s[i - 1] != '0' and int(s[i - 1:i + 1]) <= 26:
count += dp[i - 1]
if s[i] != '0':
count += dp[i]
dp[i + 1] = count
return dp[-1]
时间复杂度O(n)
空间复杂度O(n)
使用方法:动态规划记忆化搜索

京公网安备 11010502036488号