0

以下に書かれたコードを理解しようとしています。ある程度まではフォローできます。最初の結果がどのように達成されるかは理解できたと思いますが、残りがどのように達成されるかはわかりません。以下はコードと私の解釈です。

コード:

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 を出力

他の順列はどのように達成されますか? どんなガイダンスでも大歓迎です。

4

0 に答える 0