题目:全排列
排列ABC有多少种顺序
描述:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "ABC";
System.out.println(f1(str));
}
public static ArrayList<String> f1(String str){
int len = str.length();
ArrayList<String> list = new ArrayList<>();
//加入第一个元素
list.add(str.charAt(0)+"");
for(int i=1;i<len;i++) {
//新的元素
String c = str.charAt(i)+"";
//新的替代队列
ArrayList<String> newlist = new ArrayList<>();
//遍历list中的元素
for(String liststr:list) {
//加在前面
String daiti = liststr+c;
newlist.add(daiti);
//加在后面
daiti = c+liststr;
newlist.add(daiti);
//加在中间
for(int j=1;j<liststr.length();j++) {
daiti = liststr.substring(0, j)+c+liststr.substring(j);
newlist.add(daiti);
}
}
list = newlist;
}
return list;
}
}