• 扑克序列


    A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。
    要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。

    请填写出所有符合要求的排列中,字典序最小的那个。
    例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。

    import java.util.*;
    
    public class Main
    {
        static Set set = new TreeSet();
        
        static void test(char[] da)
        {
            String s = new String(da);
            
            if(s.lastIndexOf('A') - s.indexOf('A') != 2) return;
            if(s.lastIndexOf('2') - s.indexOf('2') != 3) return;
            if(s.lastIndexOf('3') - s.indexOf('3') != 4) return;
            if(s.lastIndexOf('4') - s.indexOf('4') != 5) return;
            
            set.add(s);
        }
        
        static void f(char[] da, int k)
        {
            if(k==da.length){
                test(da);
                return;
            }
            
            for(int i=k; i<da.length; i++){
                {char t=da[k]; da[k]=da[i]; da[i]=t;}
                f(da,k+1);
                {char t=da[k]; da[k]=da[i]; da[i]=t;}
            }
        }
        
        public static void main(String[] args)
        {
            char[] da = "AA223344".toCharArray();
            f(da, 0);
            
            for(Object s: set) System.out.println(s);
        }
    }
  • 相关阅读:
    HDU-2502-月之数
    C语言的位运算的优势
    HDU-1026-Ignatius and the Princess I
    HDU-1015-Safecracker
    HDU-1398-Square Coins
    HDU-1028-Ignatius and the Princess III
    背包的硬币问题
    HDU-1527-取石子游戏
    HDU-1996-汉诺塔VI
    css中的选择器
  • 原文地址:https://www.cnblogs.com/jizhidexiaobai/p/8594365.html
Copyright © 2020-2023  润新知