/**
* 题目:字符串的排列
* 描述: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。
* 例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。
* 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母
* 注:
* 输入一个字符串,按字典序打印出该字符串中字符的所有排列
* 例如输入字符串abc,则打印出由字符a,b,c
* 所能排列出来的所有字符串abc,acb,bac,bca,cab,cba,结果请按照字母顺序输出
* 输入一个字符串,长度不超过9,字符只包括大小写字母
*
* */
public class Two { public static void one(char[] chs ,int pos) { if(chs == null) {return ;} if(pos == chs.length-1) { System.out.println(chs); return; } for(int i =pos ;i<chs.length ;i++) { //首字母进行交换,包括自己 char temp = chs[i]; chs[i] = chs[pos]; chs[pos] = temp; //除了首字母,剩下的进行递归排序 one(chs,pos+1); //还原字符数组 char tem = chs[i]; chs[i] = chs[pos]; chs[pos] = tem; } } }