Изменения

Перейти к: навигация, поиск

Алгоритм Ахо-Корасик

400 байт убрано, 01:06, 29 мая 2016
Пример реализации
cur.leafPatternNumber.pushBack(patternNumber)
'''Функция, для процессинга текста (поиск, встречается строка или нет):'''
'''fun''' processText('''string''' t, '''vector<bool>''' found): <font color=green>// found - это вектор, длина которого равна количеству строк</font> found.assign(w, ''false'') <font color=green>// w - количество строк</font>
'''Node''' cur = root
'''for''' i = 0 '''to''' t.length - 1
'''char''' c = t[i] - 'a'
cur = getLink(cur, c)
'''for''' j = 0 '''to''' cur.leafPatternNumber.size - 1
found[cur.leafPatternNumber[j]] = ''true''
<font color=green>/* В этом месте кода должен выполняться переход по '''сжатой''' суффиксной ссылке getUp(cur). Для вершины,
обнаруженной по ней тоже ставим, что она найдена, затем повторяем для её сжатой суффиксной ссылки
Анонимный участник

Навигация