package test;
import java.util.LinkedList;
import java.util.List;
public class PermutaionTest2 {
public static void main(String[] args) {
String input = "ABCD";
List<String> resultList = cal("", input);
System.out.println(resultList);
}
//firt,left
public static List<String> cal(String first, String left) {
List<String> result = new LinkedList<String>();
if (left.length() > 1) {
//递归,得到临时结果
char[] chars = left.toCharArray();
int len = left.length();
for (int i = 0; i < len; i++) {
//把第一位提取出来,剩下的的拼接起来
List<String> s = new LinkedList<String>();
s = cal(String.valueOf(chars[i]), left.substring(0, i).concat(left.substring(i+1, len)));
//对递归结果跟固定为拼接
for (int j = 0; j < s.size(); j++) {
s.set(j,first.concat(s.get(j)));
}
result.addAll(s);
}
return result;
} else {
result.add(first.concat(left));
return result;
}
}
}
题目 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字...
- 首先要了解中文字符有多种编码及各种编码的特征。假设n为要截取的字节数。
- '''输入'abc',输出['abc', 'acb', 'bac', 'bca', 'cab', 'cba']。写...
