У меня возникают трудности при печати самой длинной общей подстроки в дереве суффиксов. Я могу легко рассчитать длину самой длинной общей подстроки, но у меня возникают проблемы с нахождением подстроки. Ниже приведен код самой длинной общей подстроки в C ++. Может кто-нибудь помочь меня нет?
Добавить переменную:
int start = -1;
Заменить:
ans=max(ans,l);
с:
if (l > ans) {
ans = l;
start = i;
}
Самые длинные подстроки начинаются с b[start]
так, чтобы напечатать самую длинную подстроку в конце:
printf("%.*s", ans, b + start);
Других решений пока нет …