Я пытаюсь изучить ragel для проекта, над которым я работаю. Я новичок в этом.Ragel string matching
У меня есть список из 15 строк. Проблема состоит в том, чтобы проверить, соответствует ли данная строка любой из этих 15 строк.
При нормальных обстоятельствах создание хэш-набора с 15 строками достаточно, чтобы выполнить O (1) поиск строки и указать, соответствует ли она или нет.
В моем случае я буду делать это миллиард раз. Поэтому я пытаюсь создать машину состояний для этих 15 строк с использованием ragel и проверить, соответствует ли данная строка.
Я чувствую, что подход с использованием ragel лучше, так как в обоих случаях мне придется проходить через символы один за другим. Чтобы вычислить хеш, нам нужно просканировать все символы один раз и затем посмотреть вверх. Где, как использование государственных машин, сканирующих все символы, дает результат и позволяет выполнять поиск.
Это лучший подход? И может ли кто-нибудь указать мне, как построить государственные машины для 15 строк, чтобы выполнить сопоставление строк?