小黑代码:动态规划
class Solution:
def numDecodings(self, s: str) -> int:
set_ = set([str(i) for i in range(1, 27)])
# 动态规划数组
dp = [1]
n = len(s)
# print(set_)
# 开启动态规划
for i in range(1, n+1):
dp.append(0)
for p in set_:
l = len(p)
if i - l >= 0 and s[i-l:i] == p:
dp[i] += dp[i-l]
# print(dp)
return dp[n]
小黑代码:记忆化搜索
class Solution:
def numDecodings(self, s: str) -> int:
# 字符串长度
n = len(s)
# 字符数组
map_ = set([str(i) for i in range(1, 27)])
# 设置缓存
cache = {}
# 声明递归函数
def dfs(start = 0):
if start in cache:
return cache[start]
if start == n:
return 1
count = 0
for str_ in map_:
l = len(str_)
if l + start <= n and s[start:l+start] == str_:
count += dfs(start+l)
cache[start] = count
return cache[start]
return dfs()
小黑生活
跟尚香一起吃烤串,吃吐在街头
看到中老黑发的,想笑
早上跟芙蓉去约学习~