私は実際に数週間前にこの問題に遭遇しましたが、それを解決する方法を見つけることができる最も効率的な方法は
特定の文字列のすべてのサブセットを見つけました (これには O(2^n) が必要です)
次に、辞書を調べて、サブセットがそのサイズのすべての文字列のすべての文字を「使い果たした」かどうかを確認しました
たとえば、文字列「hetre」と単語「the、there、her」が辞書にある場合、すべてのサブセットを計算できます
{h}{e}{t}{r}{e}{he}{ht}{hr}{he}{thet}{her}{reh}... 「hetre」には 32 のサブセットがあります
次に、これらのサブセットのいずれかが辞書の単語に似ているかどうかを確認します。この場合、reh は her に似ています。これは、her が使用される単語であることを意味します。
これは私が考えることができる最も効率的な方法でした
PowerSetを調べて、文字列を「使い切る」関数を作成する方法を考えてください。
別の方法は、文字列のパワーセットを見つけ出し、すべての順列を見つけることによって力ずくで実行することです。これにより、パフォーマンスが破壊されます。
最初の方法と2番目の方法を使用して15文字を超える文字列を入力し始めるまで、問題は発生しませんでした。7まで問題は発生しませんでした