public static void permutation(char[]array,int len,int start,ArrayList<String> list){
if(start==len){
//System.out.print(array);
String s=String.valueOf(array);
if(!list.contains(s)){
list.add(s);
}
}
else{
for(int i=start;i<len;i++){
if(i!=start&&array[i]==array[start])//重复情况aab
continue;
else if(!isrepet(array,i,start+1)){
swap(array,i,start);
permutation(array,len,start+1,list);
swap(array,i,start);
}
}
}
}
public static boolean isrepet(char[]s,int i,int start){//是否重复abb
for(int j=start;j<i;j++){
if(s[i]==s[start])return true;
}
return false;
}
public static void swap(char[]array,int i,int j){
char temp=array[i];
array[i]=array[j];
array[j]=temp;
}
字符串的全排列
最新推荐文章于 2020-05-18 12:45:24 发布