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.对于 i = 0; i < 字符串长度;增加 i

2.在索引处我转换为字符(a);

3.使用子串(剩余字符-bc)和(当前字符a)的参数运行排列方法;

4.现在使用字符串 bc

5.对于 i = 0; i < 字符串长度;增加 i

6.在索引处我转换为字符(b);

7.使用子串(剩余字符-c)和(当前字符ab)的参数运行排列方法;

8.对于 i = 0; i < 字符串长度;增加 i

9.在索引处我转换为字符(b);

10.使用substring(remaining characters -) and(current character abc)的参数运行置换方法;

11 as string = "" 打印当前字符 abc

其他排列是如何实现的?任何指导将不胜感激。

4

0 回答 0