最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Java基础算法题(18):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三

运维笔记admin76浏览0评论

Java基础算法题(18):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三

Java基础算法题(18):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三

查看所有50道基础算法题请看:

Java的50道基础算法题

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

package Demo18Compete_Roll;
import java.util.ArrayList;
public class Compete_Roll {/***  两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。*  有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。*//*分析:有两支队伍,每个队伍有三个队员,a不和x比,c不和x,z比,那c只能和y比那么,a只能和z比,b和x比,用程序来实现,把两支队伍装到数组中,然后嵌套遍历,排除不能匹配的,就得到了结果。*/public static void main(String[] args) {System.out.println("比赛的对抗名单安排如下:");System.out.println("=======================");// 将两个队伍分别装到两个ArrayList集合中,因为在后面安排的时候要删除已经有对手的ArrayList<Character> listI = new ArrayList<>();listI.add('a');listI.add('b');listI.add('c');ArrayList<Character> listII = new ArrayList<>();listII.add('x');listII.add('y');listII.add('z');// 遍历两个集合,排除对应的组合,打印结果,并删除已经匹配到对手的队员for (int i = listI.size()-1; i >=0; i--) {for (int j = 0;j<listII.size(); j++) {if(!(listI.get(i)=='c' && (listII.get(j)=='x' || listII.get(j)=='z'))){if(!(listI.get(i)=='a' && listII.get(j) =='x')){System.out.println(listI.get(i)+"-->"+listII.get(j));listII.remove(j);}}}}// 这个解不是很好,因为循环我不得不写两个,一个正着,一个反着,不然的话,会出现有些队员匹配到了两个对手,有的则// 没有匹配到,希望以后能找到更好的方法,有更优解的小伙伴也欢迎把你的解写到评论区,大家一起讨论哦。}
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论