Самая длинная общая подпоследовательность C (объяснение Python Script) - PullRequest
0 голосов
/ 13 ноября 2018

Я работал в течение последних нескольких дней в программе Longest Common Subsequence на C, используя динамическое программирование.Тем не менее, у меня есть проблема с памятью, так как я пытаюсь обработать много данных (и я имею в виду много), что приводит к переполнению памяти.

К счастью, я нашел алгоритм линейной сложности пространства, который может быть полезен непереполнение памяти, но написано на Python.Может кто-нибудь помочь мне понять, что происходит на картинке ниже?

Python Script for LCS Distance

Более конкретно, я не понимаю, что происходит в строке "curr =list (itertools.repeat (0, 1 + ny)) "

В остальном я могу догадаться.

Заранее спасибо!

1 Ответ

0 голосов
/ 13 ноября 2018

Вот как это работает:

  1. Считайте длину ys по коду my=len(ys), который будет равен 10 в примере "Шимпанзе"

  2. ваш 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...