0
私は、入力された文字列の順列を生成する次のコードを持っていますが、forループ、再帰だけを使用しないように変更することは可能ですか?Java:順列を生成する別の方法は?
public static void findPermutations (String beginningString, String endingString) {
if (endingString.length() <= 1)
System.out.println(beginningString + endingString);
else
for (int i = 0; i < endingString.length(); i++) {
try {
String newString = endingString.substring(0, i) + endingString.substring(i + 1);
permuteString(beginningString + endingString.charAt(i), newString);
} catch (StringIndexOutOfBoundsException exception) {
exception.printStackTrace();
}
}
}
ループは常に再帰を使用して記述することができ、その逆もあります。大きな問題は、通常、「パフォーマンス対可読性」です。 – Maroun
私の感想は、ループのない解決法はかなり読めないということです。 –
'StringIndexOutOfBoundsException'は実際にはキャッチされるべきものではなく、長さとインデックスをチェックすることで完全に回避できます。 –