【发布时间】:2017-01-22 08:32:39
【问题描述】:
根据教科书,作者要求我用一种特殊的方法来实现java中的排列。 更准确地说,存在两个功能:
public void static displayPermutation(String s) ----就是调用下一个函数displayPermutation("", String s);
从作者的角度来看,我们应该使用递归将一个字符从逗号后的“s”逐步移动到第一个字符串。
但是,尽管我尽一切努力实现这一点,但我发现我的代码不起作用。 这是我的代码:
public static void displayPermuation(String s){
displayPermuation("", s);
}
public static void displayPermuation(String s1, String s2){
if(s2.length() == 0){
System.out.println(s1);
return;
}else{
for(int i = 0; i < s2.length(); i++){
s1 = String.format(s1 + "%s", s2.charAt(i));
s2 = String.format("%s%s", s2.substring(0, i), s2.substring(i + 1, s2.length()));
displayPermuation(s1, s2);
}
}
}
【问题讨论】:
-
“不工作”是什么意思?您预计会发生什么,实际结果是什么?
-
在 for 循环的第一次迭代之后,字符串
s1和s2不再是您认为的那样。
标签: java recursion permutation