标题:扑克序列
A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。
要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。
请填写出所有符合要求的排列中,字典序最小的那个。
例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。
请通过浏览器提交答案。“A”一定不要用小写字母a,也不要用“1”代替。字符间一定不要留空格。
分析:
先求出这4对扑克牌可能形成的全排列字符串,然后筛选出符合“两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌”的情况。
(其实这个题手动算都能求出答案了)
代码:
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
char [] a = {'A', 'A', '2', '2', '3', '3', '4', '4'};
f(a,0);
for (String s : set) {//遍历set集合,结果不多的话可以人工判断
System.out.println(set);
}
}
//Set集合用于去重
static Set<String> set = new HashSet<String>();
//求字符串的全排列
private st