Algorithm

Build SA + LCP. Find i with max LCP[i]. Answer = S[SA[i] .. SA[i] + LCP[i] - 1].

Advertisement

K-repeated variant

Longest substring appearing ≥ K times: max over i of min(LCP[i..i+K-2]). Sliding-window min on LCP.

Advertisement

Distinct substring count

Sum over i of (N - SA[i] - LCP[i]) = number of distinct substrings.

Applications

DNA repeat detection. Plagiarism. Data compression preprocessing. Language analysis.