以下に書かれたコードを理解しようとしています。ある程度まではフォローできます。最初の結果がどのように達成されるかは理解できたと思いますが、残りがどのように達成されるかはわかりません。以下はコードと私の解釈です。
コード:
public static void main(String [] args)
{
String str ="abc";
permuatation(str,"");
}
private static void permuatation(String str, String current) {
if(str.equals(""))
{
System.out.printf("Result: %s",current);
System.out.println();
}
else
{
for (int i = 0; i < str.length(); i++)
{
char c= str.charAt(i);
permuatation(str.substring(0, i)+ str.substring(i+1), current + c);
}
}
abc などの文字列に対する私の解釈。
1.for i = 0; i < 文字列の長さよりも; インクリメント i
2.インデックスで、文字(a)に変換します。
3.部分文字列(残りの文字-bc)と(現在の文字a)の引数を使用して順列メソッドを実行します。
4. 文字列 bc を使用するようになりました
5.for i = 0; i < 文字列の長さよりも; インクリメント i
6. インデックス i で文字 (b) に変換します。
7.部分文字列(残りの文字-c)および(現在の文字ab)の引数を使用して順列メソッドを実行します。
8.for i = 0; i < 文字列の長さよりも; インクリメント i
9.インデックス i で文字 (b) に変換します。
10.部分文字列(残りの文字-)と(現在の文字abc)の引数を使用して順列メソッドを実行します;
11 as string = "" 現在の文字 abc を出力
他の順列はどのように達成されますか? どんなガイダンスでも大歓迎です。