我试图理解下面写的代码。我可以在一定程度上跟进。我想我了解第一个结果是如何实现的,但不确定其他结果如何。以下是代码和我的解释。
代码:
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
其他排列是如何实现的?任何指导将不胜感激。