Мне трудно понять, почему временная сложность построения суффиксного дерева в наихудшем случае является линейной, особенно когда нам нужно построить суффиксное дерево для строки, которая может состоять из повторяющихся одиночных символов, таких как "aaaaa" .
Даже если бы я построил сжатое дерево суффиксов для «aaaaa», я не смог бы сжать какие-либо узлы, поскольку никакие два ребра, начинающиеся с узла, не могут иметь строковые метки, начинающиеся с одного и того же символа.
Это привело бы к дереву суффиксов высотой 5, и при каждой вставке суффикса мне нужно было бы продолжать переход от корня к листу.
Вот как я подошел: суффиксы: а, аа, ааа, аааа, ааааа
Создайте корневой узел, создайте ребро, несущее «а», и соедините его с новым узлом, где слева от него стоит «$», и повторяйте этот процесс, пока мы не сможем ааааа.
Это приведет к O (n ^ 2) вместо O (n). Что мне здесь не хватает?