class Solution:
def numDecodings(self, s: str) -> int:
n=len(s)
memo={}
def _decode(i):
if i in memo:return memo[i]
elif i>=n:
memo[i]=1
return memo[i]
elif i==n-1:
memo[i]=0 if s[i]=='0'else 1
return memo[i]
elif s[i]=='0':
memo[i]=0
return memo[i]
elif i+1<n and int(s[i:i+2])<=26:
memo[i]=_decode(i+1)+_decode(i+2)
return memo[i]
else:
memo[i]=_decode(i+1)
return memo[i]
return _decode(0)
91. Decode Ways
最新推荐文章于 2025-08-13 21:50:19 发布