//Java实现122345这6个数字的全排序,且:4不能在第三位,且3和5不能连接在一起
import java.util.HashSet;
import java.util.Set;
public class Java_Permutation{
// 用于序号
private static int index=1;
// 用于清除重复的数,因为有两个2的影响
private static Set<String> set=new HashSet<String>();
public static void main(String[] args){
Integer[] arr02={1,2,2,3,4,5};
//Integer[] arr02={1,2,2};
Java_Permutation(arr02,0,arr02.length);
}
public static void Java_Permutation(Integer[] arr,int start,int end){
if(start<end+1){
Java_Permutation(arr,start+1,end);
for(int i=start+1;i<end;i++){
Integer temp;
temp=arr[start];
arr[start]=arr[i];
arr[i]=temp;
Java_Permutation(arr,start+1,end);
temp=arr[i];
arr[i]=arr[start];
arr[start]=temp;
}
}
else{
print(arr);
}
}
private static void print(Integer[] arr){
// "4"不能在第三位
if(arr[2]==4){
return;
}
StringBuilder sb=new StringBuilder();
for(int i=0;i<arr.length;i++){
sb.append(arr[i]);
}
String word=sb.toString();
// "3"与"5"不能相连
if(word.contains("35") || word.contains("53")){
return;
}
// 打印
if(set.contains(word)==false){
System.out.println((index++)+" "+word);
set.add(word);
}
}
}
Java - 趣味题(3) --- 122345全排序
最新推荐文章于 2022-04-28 21:52:55 发布