【发布时间】:2011-06-24 10:04:01
【问题描述】:
public class Permute {
public static void main(String[] args) throws IOException {
System.out.println("Enter a string");
BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));
String text = bufReader.readLine();
shuffle("",text);
}
public static void shuffle(String dummy, String input){
if(input.length() <= 1)
System.out.println(dummy+input);
else{
for(int i=0; i <input.length();i++){
input = input.substring(i,1) + input.substring(0,i) + input.substring(i+1);
shuffle(dummy+input.substring(0,1),input.substring(1));
}
}
}
}
我正在尝试打印输入的字符串的所有排列。而且我真的无法猜测哪里出了问题,因为在纸上我发现这正在执行。到底哪里出了问题。
【问题讨论】:
-
您是否尝试使用调试器单步执行您的代码,以查看其行为与您预期的不同之处?
-
你怎么知道你错了?那里可能有线索...
-
对 dummy+input.substring(0,1) 和 input.substring(1) 使用变量,看看你是否可以命名它们以匹配它们应该是什么。
-
是的,我正在这样做,我正在逐步执行代码。
-
@Chaitanya:好的。所以在某些时候,你应该能够看到它做一些意想不到的事情......
标签: java recursion permutation