Я хочу создать алгоритм, который находит подстроки внутри строки, которая существует в алфавите. Например, в строке «abcdefhhhasddasdabbba» я хочу найти подстроки, порожденные алфавитом {'a','b'}
Итак, мой вывод будет таким: ab, a, abbba
Если я использую конечное состояние, мне нужно создать точные конечные состояния, которые включают мои выходные данные, поэтому мне придется использовать все возможные комбинации длины моего ввода жала, что я не думаю, что это вообще эффективно.
Если я использую дерево суффиксов, то как я могу найти подстроки, которые могут не быть префиксом или постфиксом внутри дерева? Должен ли я использовать для каждого узла массив, в котором хранятся данные для поддерева, а затем проверять, содержит ли массив символы, не включенные в алфавит?
Редактировать:
Сложность имеет решающее значение.
{a,b}
и одно для остального алфавита. - person Fred Foo   schedule 24.05.2014