Как напечатать строку в дереве суффиксов

У меня возникают трудности при печати самой длинной общей подстроки в дереве суффиксов. Я могу легко рассчитать длину самой длинной общей подстроки, но у меня возникают проблемы с нахождением подстроки. Ниже приведен код самой длинной общей подстроки в C ++. Может кто-нибудь помочь меня нет?

-1

Решение

Добавить переменную:

int start = -1;

Заменить:

ans=max(ans,l);

с:

if (l > ans) {
ans = l;
start = i;
}

Самые длинные подстроки начинаются с b[start]так, чтобы напечатать самую длинную подстроку в конце:

printf("%.*s", ans, b + start);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]