Я не могу понять приведенный ниже алгоритм, который используется для сопоставления строковых шаблонов с использованием алгоритма Aho-Corasick.
Procedure AC(y,n,q0)
INPUT: y<-array of m bytes representing the text input
(SQL Query Statement)
n<-integer representing the text length
(SQL Query Length)
q0<-initial state (first character in pattern)
2: State <-q0
3: For i = 1 to n do
4: While g ( State, y[i] = = fail) do
5: State ← f (State)
6: End While
7: State ← g(State,.y[i])
8: If o(State) ???? then
9: Output i
10: Else
11: Output
12: End If
13: End for
14: End Procedure
f
,g
иo
? Это похоже на общую реализацию конечного автомата, который обновляет текущее состояние на основе каждого нового введенного символа, а затем определяет, заканчивается ли строка состоянием принятия. - person chepner   schedule 02.12.2013