[标记一下,后序继续添加] 使用递归
import java.util.ArrayList;
import java.util.*;
public class Solution {
ArrayList<String> list=new ArrayList<>();
public ArrayList<String> Permutation(String str) {
if(0==str.length()){
return list;
}
char[] ch=str.toCharArray();
permutation(ch,new ArrayList<String>());
Collections.sort(list);
return list;
}
public void permutation(char[] ch,ArrayList<String> temp){
if(temp.size()==ch.length){ //如果temp放满了就添加到list一次
String adder=String.join("",new ArrayList<String>(temp));
if(!list.contains(adder)){
list.add(adder);
}
}
else
for(int i=0;i<=temp.size();i++){
temp.add(i,String.valueOf(ch[temp.size()])); /*这里是把ch中第temp.size个字符依次放入temp中每个位置都试一遍。 */
permutation(ch,temp);
temp.remove(i);
}
}
}