Понимаю как это реализуется - сначала по куче искомых строк строится конечный автомат с множеством одновременных состояний. И эти состояния потенциально сдвигаются «к успеху» на каждый входной символ или убиваются или заводятся новые «процессы прохода». Состояние (процесс), которое дошло до своего успеха сигнализирует о появлении слова (N шагов назад его начало).
Как называется это по-умному? Чё за алгоритм?