标题:扑克序列
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。
要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。
请填写出所有符合要求的排列中,字典序最小的那个。
例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。
要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。
请填写出所有符合要求的排列中,字典序最小的那个。
例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。
请通过浏览器提交答案。“A”一定不要用小写字母a,也不要用“1”代替。字符间一定不要留空格。
//这是我看的别人的代码,看的哪的我也忘了
public class 扑克序列 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 我设存在一个长度为8的数组,那么其上8个数字要排在该数组中。设第一个A的下标是ma
* ,那么第二个A的下标就是ma+2 ; 同理第一个2的下标为m2,第二个2的下标就为m2+3;
* 3和4就说了,道理一样。那么我就让这些下标组成一个字符数组,经过从大到小的排序字符,只
* 要满足下标各不相等就可以了,是不是很好呢
*
* */
for(int i = 1;i<=6;i++){
for(int j = 1; j<=5;j++){
for(int k =1 ; k<=4;k++){
for(int l =1;l<=3;l++){
String s = ""+i+j+k+l+(i+2)+(j+3)+(k+4)+(l+5);
String[] arr = s.split("");
Arrays.sort(arr);
boolean panduan = true;
for(int p = 0 ; p<arr.length-1;p++){
if(arr[p].equals(arr[p+1])){
panduan=false;
break;
}
}
if(panduan){
System.out.println(s);
}
}
}
}
}
}
}