在过去的几天中,我一直在使用动态编程开发C语言中的最长公共子序列程序。虽然,我遇到内存问题,因为我正在尝试处理大量数据(这是很多),这会导致内存溢出。

幸运的是,我发现了一种线性空间复杂度算法,该算法对于避免内存溢出很有用,但是它是用Python编写的。有人可以帮我了解下图的情况吗?

python - 最长的公共(public)子序列C(Python脚本说明)-LMLPHP

更具体地说,我不明白它在“ 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/

10-10 04:57