Когда я запускаю LCS («человек», «шимпанзе»), я получаю «h» вместо «hm». Когда я запускаю LCS ('gattaca', 'tacgaacta'), я получаю «g» вместо «gaaca». Когда я запускаю LCS («wow», «whew»), я получаю «ww», что является правильным. Когда я запускаю LCS ('', 'whew'), я получаю "", что является правильным. Когда я запускаю LCS ('abcdefgh', 'efghabcd'), я получаю «a» вместо «abcd». Что я делаю неправильно?Самая длинная общая подпоследовательность Функция Python 2
Вот мой код:
def LCS(S, T):
array = ''
i = 0
j = 0
while i < len(S):
while j < len(T):
if S[i] == T[j]:
array += S[i]
j += 1
i += 1
return array
reset j в конце второго цикла while –
Почему вы ожидали, что это сработает? – user2357112
@RahulMadhavan: Нет, все еще совершенно неправильно. Этот код на самом деле не спасен; любая фиксированная версия будет по существу полной перезаписи. – user2357112