Хороший алгоритм и структура данных для поиска слов с отсутствующими буквами?
поэтому мне нужно написать эффективный алгоритм поиска слов с отсутствующими буквами в словаре, и я хочу, чтобы набор возможных слов.
например, если у меня есть че??e, я мог бы вернуть эти, те, темы, там.так далее.
Мне было интересно, если кто может предложить некоторые структуры данных или алгоритм, который я должен использовать.
спасибо!
EDIT: Trie слишком малоэффективен и делает его слишком медленным. Любая другая идея изменения?
обновление: там будет до двух вопросительных знаков и когда два вопросительных знака происходят, они будут происходить в последовательности.
В настоящее время я использую 3 хэш-таблицы, когда это точное совпадение, 1 вопросительный знак и 2 вопросительных знака.
Учитывая словарь, я хэширую все возможные слова. Например, если у меня есть слово WORD. Я хэш слово,?ОРД, Ч?РД, ВО?Д, ВОР?, ??РД, Ч??Д, ВО??. в словарь. Затем я использую список ссылок, чтобы связать столкновения вместе. Так сказать хэш(Ш?RD) = хэш (STR?НГ) = 17. hashtab (17) будет указывать на слово и слово указывает на строку, потому что это связанный список.
сроки в среднем на поиск одного слова о 2е-6С. Я ищу, чтобы сделать лучше, предпочтительно порядка 1е-9.
EDIT: я не смотрел на эту проблему снова, но это заняло 0,5 секунды для 3M записей вставки и это заняло 4 секунды для 3M записей поиска.
спасибо!
Comments