ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hj_三三对决分配对手

2021-10-30 12:01:31  阅读:131  来源: 互联网

标签:hj setA setB setC System 三三 println 对决 out


import java.util.*;

/**
 * @author hj
 * @version 1.0
 * @Description: 两个球队比赛, 龙队 a,b,c三人,虎队 x,y,z三人,a不和x比 ,c不和x,z比,找出并打印三对选手的对决
 */
class HjBallGame {

    public static void main(String[] args) {
        System.out.println("-----------------");
        threeFor();
        System.out.println("-----------------");
        threeForOptimizing();
        System.out.println("-----------------");
        setContainer();
    }

    /**
     * 直接法.三重循环,简单明了一路判断
     */
    private static void threeFor() {
        final char x = 'x';
        final char z = 'z';
        for (char a = x; a <= z; a++) {
            for (char b = x; b <= z; b++) {
                for (char c = x; c <= z; c++) {
                    if (a != x && c != x && c != z && a != b && a != c && b != c) {
                        System.out.println("a---" + a);
                        System.out.println("b---" + b);
                        System.out.println("c---" + c);
                    }
                }
            }
        }
    }

    /**
     * 直接法.三重循环,稍微优化
     */
    private static void threeForOptimizing() {
        final char x = 'x';
        final char z = 'z';
        for (char a = x; a <= z; a++) {
            for (char b = x; b <= z; b++) {
                if (a != b) {
                    for (char c = x; c <= z; c++) {
                        if (c != a && c != b && c != x && c != z && a != x) {
                            System.out.println("a----PK----" + a);
                            System.out.println("b----PK----" + b);
                            System.out.println("c----PK----" + c);
                        }
                    }
                }
            }
        }
    }

    /**
     * 集合容器法
     */
    private static void setContainer() {
        //龙 虎 队
        char[] dragon = {'a', 'b', 'c'};
        char[] tiger = {'x', 'y', 'z'};
        Set<Character> setA = new HashSet<>();
        Set<Character> setB = new HashSet<>();
        Set<Character> setC = new HashSet<>();
        for (char d : dragon) {
            for (char t : tiger) {
                switch (d) {
                    case 'a':
                        if (t != 'x') {
                            setA.add(t);
                        }
                        break;
                    case 'b':
                        setB.add(t);
                        break;
                    case 'c':
                        if (t != 'x' && t != 'z') {
                            setC.add(t);
                        }
                        break;
                    default:
                        System.out.println("异常了");
                        break;
                }
            }
        }
        deWeight(setA, setB, setC);
        deWeight(setB, setC, setA);
        deWeight(setC, setA, setB);
        System.out.println("龙队 a --->>"+setA.iterator().next());
        System.out.println("龙队 b --->>"+setB.iterator().next());
        System.out.println("龙队 c --->>"+setC.iterator().next());
    }

    /**
     * 去重
     *
     * @param setA a的对手集
     * @param setB b的对手集
     * @param setC c的对手集
     */
    private static void deWeight(Set<Character> setA, Set<Character> setB, Set<Character> setC) {
        if (setA.size() == 1) {
            setB.removeAll(setA);
            setC.removeAll(setA);
        }
        if (setB.size() == 1) {
            setA.removeAll(setB);
            setC.removeAll(setB);
        }
        if (setC.size() == 1) {
            setA.removeAll(setC);
            setB.removeAll(setC);
        }
    }

}

 

标签:hj,setA,setB,setC,System,三三,println,对决,out
来源: https://www.cnblogs.com/hua-jian/p/15484695.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有