import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
/*
* 字符串全排列问题递归解决
*/
public class Test7_1 {
public static void main(String[] args) {
String[] array={"1","2","3","4"}; //定义一个字符数组
HashSet<String> list=new HashSet<String>(); //定义一个set存放排列后的字符串
listAll(Arrays.asList(array),"",list); //递归解决问题
for(String s:list){
System.out.print(s+" ");
}
}
public static void listAll(List<String> candidate,String prefix,HashSet<String> list){
if(candidate.isEmpty()){
list.add(prefix);
}
for(int i=0;i<candidate.size();++i){
List<String> temp=new LinkedList<String>(candidate);
listAll(temp,prefix+temp.remove(i),list);
}
}
}
java使用递归解决全排列问题
最新推荐文章于 2021-02-21 18:14:01 发布