在过去的几天中,我一直在使用动态编程开发C语言中的最长公共子序列程序。虽然,我遇到内存问题,因为我正在尝试处理大量数据(这是很多),这会导致内存溢出。
幸运的是,我发现了一种线性空间复杂度算法,该算法对于避免内存溢出很有用,但是它是用Python编写的。有人可以帮我了解下图的情况吗?
更具体地说,我不明白它在“ curr = list(itertools.repeat(0,1 + ny))”行中发生了什么
对于其余的我可以猜测。
提前致谢!
最佳答案
它是这样工作的:
通过代码my=len(ys)
读取ys的长度,在“黑猩猩”示例中该长度将为10
您的itertools.repeat将为list(itertools.repeat(1,11))
,将列出11次
[1,1,1,1,1,1,1,1,1,1,1]
正如您所说的休息,您已经弄明白了。
有关重复的更多信息,请查看以下内容:
https://docs.python.org/2/library/itertools.html
关于python - 最长的公共(public)子序列C(Python脚本说明),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53276353/