[英]Longest common subsequence implementation-python
我已按照此视频中的说明实施了最长的常见子序列问题。 它只执行第一组代码并产生一个空列表。 此实现有什么问题?
def lcs_recursive(xlist,ylist):
if not xlist or ylist:
return []
x,xs,y,ys, = xlist[0],xlist[1:],ylist[0],ylist[1:]
if x == y:
return [x] + lcs_recursive(xs,ys)
else:
return max(lcs_recursive(xlist,ys),lcs_recursive(xs,ylist),key=len)
s1 = 'abc'
s2 = 'aeb'
print lcs_recursive(s1,s2)
if not xlist or ylist:
如将评估if (not xlist) or (ylist)
因此,如果你的东西传递Truthy(如非空列表),以ylist
它总是会评估为True。 您可能想要:
if not xlist or not ylist:
return []
或者,您可以使用:
if not all([xlist, ylist]):
return []
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.