Я столкнулся с этой проблемой несколько недель назад, и самый эффективный способ выяснить, как ее решить, был
Я нашел все подмножества данной строки (это займет O (2 ^ n))
Затем я заглянул в свой словарь, чтобы увидеть, «не использует ли подмножество» все символы всех строк этого размера
например, заданная строка "hetre"
и слова "там она" в твоем словаре
Вы можете рассчитать все подмножества
{h} {e} {t} {r} {e} {he} {ht} {hr} {he} {het} {her} {reh} ... есть 32 подмножества "hetre"
, затем проверьте, похожи ли какие-либо из этих подмножеств на слова в словаре в этом случае
Рех похож на нее, что означает, что это слово, которое будет использоваться
Это был самый эффективный способ, которым я мог придумать
исследуйте PowerSets и подумайте, как можно написать функцию, которая "использует" строки
Другим способом было бы перебить его, выяснив наборы питания для струн и найдя все перестановки, это снизит производительность
Мой не доставлял мне проблем, пока я не начал вводить строки длиной более 15 символов, используя первый метод.
используя второй метод, у меня не было проблем до 7