私は現在、ユーザーが単語を入力するプログラミングの割り当てに取り組んでいます
つまり「あれ」
プログラムは、指定された文字列から作成できるすべての有効な単語を返す必要があります
すなわち[それ、帽子、で]
私が抱えている問題は、プレフィックスが有効かどうかを確認する再帰的な方法を使用して、結果の単語を作成する必要があることです。
つまり、指定された単語が「kevin」の場合、プログラムが「kv」の組み合わせを試行すると、kv で始まる単語がないことを認識し、時間を節約するために次の組み合わせを試行します。
現在、私のコードはすべての順列を作成するだけで、入力が8文字を超えると比較的時間がかかります。
protected static String wordCreator(String prefix, String letters) {
int length = letters.length();
//if each character has been used, return the current permutation of the letters
if (length == 0) {
return prefix;
}
//else recursively call on itself to permute possible combinations by incrementing the letters
else {
for (int i = 0; i < length; i++) {
words.add(wordCreator(prefix + letters.charAt(i), letters.substring(0, i) + letters.substring(i+1, length)));
}
}
return prefix;
}
誰かがこれを理解するのを手伝ってくれるなら、私は大歓迎です。また、AVL ツリーを使用して、必要な場合に備えて検証用の辞書の単語を保存しています。