Я реализовал алгоритм ukkonen для построения дерева суффиксов, но мне трудно пытаться доказать, что он работает за линейное время.