Алгоритм поиска одинаковых участков в N строках?

Предупреждаю сразу, мне не для учебы или чего-нибудь подотчетного это надо решить, просто проснулся дикий интерес.

Допустим есть несколько строк (5, 10, 15..) абсолютно произвольного вида и произвольной длины, для простоты возьмем так:
ABCBDCEACA,
BCDСEAEDAD,
CAEDСECDAE ... и т.д.

Каким образом можно найти последовательность символов(максимально длинную, конечно), которая есть во всех строках, если она заранее неизвестна?
Подстрока в примере получается DCE, но как это определить с помощью программы, никакого подобного алгоритмы я пока не нашла...или плохо искала?
  • Вопрос задан
  • 2454 просмотра
Решения вопроса 1
angrySCV
@angrySCV
machine learning, programming, startuping
хехех, незнаю почему не любят использовать алгоритм Ахо-Карасик, по-моему наиболее удобный для таких целей
очень легко будет найти самую длинную ветку в дереве.
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@gleb_kudr
Подобные алгоритмы чрезвычайно широко используются в биоинформатике. Вот направление для начала поисков en.wikipedia.org/wiki/BLAST
Ответ написан
DnAp
@DnAp
Посмотрите в этой статье на раздел "Как это работает".
Там описано направление в котором я бы двигался для написания такого алгоритма
Ответ написан
Комментировать
GavriKos
@GavriKos
Вам нужен какой то оптимальный алгоритм? Неоптимально решается путем перебора всех подстрок из первой строки и поиском их в остальных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы