全排列的代码 (递归写法)
原创
©著作权归作者所有:来自51CTO博客作者Java全栈研发大联盟的原创作品,请联系作者获取转载授权,否则将追究法律责任
代码如下:
public static List<String> getSubstring(String[] words) {
if(words.length==1){
return Arrays.asList(words);
}
List<String> resultList = new ArrayList<>();
for (int i = 0; i < words.length; i++) {
String[] strings = Arrays.copyOf(words, words.length);
strings = changeArray(strings, i);
List<String> stringList = getSubstring(strings);
for (String str : stringList) {
resultList.add(words[i] + str);
}
}
return resultList;
}
public static String[] changeArray(String[] words, int i) {
for (int k = i; k < words.length - 1; k++) {
words[k] = words[k + 1];
}
return Arrays.copyOf(words, words.length - 1);
}如果测试
String[] words = {"1", "2", "3"};
List<String> substring = getSubstring(words);
System.out.println(substring);打印结果:
