Хороший алгоритм и структура данных для поиска слов с отсутствующими буквами?



поэтому мне нужно написать эффективный алгоритм поиска слов с отсутствующими буквами в словаре, и я хочу, чтобы набор возможных слов.



например, если у меня есть че??e, я мог бы вернуть эти, те, темы, там.так далее.



Мне было интересно, если кто может предложить некоторые структуры данных или алгоритм, который я должен использовать.



спасибо!



EDIT: Trie слишком малоэффективен и делает его слишком медленным. Любая другая идея изменения?



обновление: там будет до двух вопросительных знаков и когда два вопросительных знака происходят, они будут происходить в последовательности.



В настоящее время я использую 3 хэш-таблицы, когда это точное совпадение, 1 вопросительный знак и 2 вопросительных знака.
Учитывая словарь, я хэширую все возможные слова. Например, если у меня есть слово WORD. Я хэш слово,?ОРД, Ч?РД, ВО?Д, ВОР?, ??РД, Ч??Д, ВО??. в словарь. Затем я использую список ссылок, чтобы связать столкновения вместе. Так сказать хэш(Ш?RD) = хэш (STR?НГ) = 17. hashtab (17) будет указывать на слово и слово указывает на строку, потому что это связанный список.



сроки в среднем на поиск одного слова о 2е-6С. Я ищу, чтобы сделать лучше, предпочтительно порядка 1е-9.



EDIT: я не смотрел на эту проблему снова, но это заняло 0,5 секунды для 3M записей вставки и это заняло 4 секунды для 3M записей поиска.



спасибо!

644   0  

Comments

    Ничего не найдено.