zoukankan      html  css  js  c++  java
  • 扑克序列

    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);
        }
    }
  • 相关阅读:
    HyperV创建NAT网络
    Win10
    ConEmu
    ffmpeg的centos、msys2、msvc编译
    7z压缩gopath的src的批处理
    VS2015自带v120的Platform Toolset
    Putty配置
    第一章:HTML5的基础
    java的错题整理
    第十四章:类的带参方法
  • 原文地址:https://www.cnblogs.com/jizhidexiaobai/p/8594365.html
Copyright © 2011-2022 走看看