昨天听室友说面试问到了全排列的问题,今天上午就试着写了一下。最基础版,应该还有很多优化空间,欢迎指出。
import java.util.HashSet;
import java.util.Set;
/**
*
* @author lqshanshuo
*/
public class Permutation {
static String[] str_arr = {"a","b","c","d","e"};
private void perm(Set<String> s,String last_str,String pre_string){
Set<String> set = new HashSet(s);
set.remove(last_str);
if (set.size()==0) {
System.out.println(pre_string+last_str);
return;
}
for(String item : set){
perm(set, item, pre_string+last_str);
}
}
public static void main(String[] args) {
Set<String> set = new HashSet();
for (String item : str_arr) {
set.add(item);
}
Permutation permutation = new Permutation();
permutation.perm(set,"","");
}
}