С учетом строки s
, что является самым быстрым методом для генерации набора всех его уникальных подстрок?
Пример: для str = "aba"
мы получим substrs={"a", "b", "ab", "ba", "aba"}
.
Наивный алгоритм состоял бы в том, чтобы пересечь всю строку, производящую подстроки длиной 1..n
в каждой итерации, получив верхнюю границу O(n^2)
.
Возможна ли лучшая граница?
(это технически домашнее задание, поэтому только указатели приветствуются)