Лучшая структура данных для такого рода поиска слов / проверки орфографии?
У меня есть список слов, таких как:
mmad
mmaaddd
bbad
bbaadddd
Давайте предположим, что сумасшедший и плохой считаются правильными словами согласно некоторому словарю. Есть ли идеальный алгоритм или структура данных, чтобы найти совпадения для этих орфографических ошибок? Я думал, что три было бы полезно, но я не был уверен, как это вступит в игру, если действительный список слов / словарь состоит из тысяч слов.
РЕДАКТИРОВАТЬ: я должен упомянуть, что я не беспокоюсь о словах, которые будут развеяны с точки зрения персонажа, то есть я не хочу, чтобы "mmad" исправлялся на "грустный" или что-то подобное Я думаю, что это то, для чего лучше было бы расстояние Левенштейна и расстояние ЛД; эта проблема является странным подмножеством этого.