順列メソッドがあります
public void permute(String str) {
permute(str.toCharArray(), 0, str.length() - 1);
}
private void permute(char[] str, int low, int high) {
if (low == high) {
writeIntoSet(new String(str, 0, length));
} else {
for (int i = low; i <= high; i++) {
char[] x = charArrayWithSwappedChars(str, low, i);
permute(x, low + 1, high);
}
}
}
private char[] charArrayWithSwappedChars(char[] str, int a, int b) {
char[] array = str.clone();
char c = array[a];
array[a] = array[b];
array[b] = c;
return array;
}
しかし、このメソッドに 10 文字の長さの文字列を入れると、10 になります。組み合わせて、とても時間がかかります。それをより速くする方法はありますか?
編集
10文字から順列を作る必要がありますが、その後、これらの「単語」を辞書で検索します。たとえば、CxRjAkiSvH があり、CAR、CARS、CRASH などの単語が必要です。パフォーマンス オプションはありますか?