【发布时间】:2021-01-25 07:45:23
【问题描述】:
我说的是要解决一些动态规划问题,我遇到了一个问题是要解决一个字符串是否可以从一个字符串列表中构造出来。 我在 python 3.8 中使用了以下方法。
def canConstruct(target,workbank,memo={}):
if (target in memo):
return(memo[target])
if len(target)==0:
return(True)
for i in range (len(workbank)):
pos=target.find(workbank[i])
if (pos != -1):
suffix=target[pos:pos+len(workbank[i])]
out=canConstruct(suffix,workbank,memo)
if (out==True):
memo[target]=True
return(True)
memo[target]=False
return(False)
print(canConstruct('aabbc',['aa','b','c']))
相比之下,我得到的错误最大递归深度超过了。 我检查了我的递归限制是 1000。 谁能告诉我我做错了什么。 提前谢谢你。
【问题讨论】:
-
所以预期的输出是真的对吗?不是 String 对象吗?
-
我知道错误在哪里,我想知道输出是什么,我正在更改函数
-
是的,输出应该是 True。不是字符串对象
标签: python-3.x dynamic-programming