// ABCDE 所有排列
public class B
{
// aa: 待排数据
// k: 考虑的当前位置(数组下标)
static void f(char[] aa, int k){
if(k==aa.length-1){
System.out.println(String.valueOf(aa));
return;
}
for(int i=k; i){
{char t=aa[k]; aa[k]=aa[i]; aa[i]=t;} // 试探
f(aa,k+1);
{char t=aa[k]; aa[k]=aa[i]; aa[i]=t;} // 回溯
}
}
public static void main(String[] args){
f("ABC".toCharArray(), 0);
}
}
import java.util.*;
public class A
{
static List f(String s){
List lst = new Vector();
if(s.length()==1){
lst.add(s);
return lst;
}
for(int i=0; i){
char x = s.charAt(i);
List t = f(s.substring(0,i)+s.substring(i+1));
for(int k=0; k){
lst.add("" + x + t.get(k));
}
}
return lst;
}
public static void main(String[] args){
List lst = f("ABC");
for(int i=0; i){
System.out.println(lst.get(i));
}
}
}