题目描述2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下:1、首先gold medal数量多的排在前面;2、其次silver medal数量多的排在前面;3、然后bronze medal数量多的排在前面;4、若以上三个条件仍无法区分名次,则以国家名称的字典序排定。我们假设国家名称不超过20个字符、各种奖牌数不超过100,且大于等于0。解答要求时间限制:1000ms, 内存限制:100MB输入第一行输入一个整数N(0<N<21),代表国家数量;然后接下来的N行,每行包含一个字符串Namei表示每个国家的名称,和三个整数Gi、Si、Bi表示每个获得的gold medal、silver medal、bronze medal的数量,以空格隔开,如(China 51 20 21),具体见样例输入。输出输出奖牌榜的依次顺序,只输出国家名称,各占一行,具体见样例输出。样例输入样例 1 复制5China 32 28 34England 12 34 22France 23 33 2Japan 12 34 25Rusia 23 43 0输出样例 1ChinaRusiaFranceJapanEngland

思路:模拟题,按照题目给出的排序规则进行排序即可

class CountryInfo{String countryName;int gold;int silver;int bronze;public CountryInfo(String countryName,int gold,int silver,int bronze){this.countryName = countryName;this.gold = gold;this.silver = silver;this.bronze = bronze;}
}public class Main {public static void main(String[] args){int N = 5;CountryInfo[] countryInfos = new CountryInfo[N];countryInfos[0] = new CountryInfo("China", 32, 28, 34);countryInfos[1] = new CountryInfo("England", 12, 34, 22);countryInfos[2] = new CountryInfo("France", 23, 33, 2);countryInfos[3] = new CountryInfo("Japan", 12, 34, 25);countryInfos[4] = new CountryInfo("Rusia", 23, 43, 0);find(countryInfos);}public static void find(CountryInfo[] countryInfos){Arrays.sort(countryInfos,(a,b)->{//易错点 != 写成了 >if(b.gold != a.gold){return b.gold - a.gold;}if(b.silver != a.silver){return b.silver - a.silver;}if(b.bronze != a.bronze){return b.bronze - a.bronze;}String sa = a.countryName;String sb = b.countryName;int n1 = sa.length();int n2 = sb.length();int index = 0;while(index < n1 && index < n2){//易错点当不一样时应该直接返回值if (sa.charAt(index) != sb.charAt(index)) {return sa.charAt(index) - sb.charAt(index);}index++;}return n1 - n2;});for (int i = 0; i < countryInfos.length; i++) {System.out.println(countryInfos[i].countryName);}}}

华为OJ笔试面试题:2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下相关推荐

  1. 2012伦敦奥运会垃圾邮件大战提前上演

    本文讲的是2012伦敦奥运会垃圾邮件大战提前上演,2009 年的时候,我曾就南非足球世界杯可能产生的恶意攻击活动发表博文.事实上,我们发现,重大体育赛事始终牵动着垃圾邮件制造者的敏感神经,而即将开幕的 ...

  2. 超酷2012伦敦奥运会多次曝光效果摄影作品集

    为什么80%的码农都做不了架构师?>>>    日期:2012-8-15  来源:GBin1.com 伦敦奥运会刚刚结束, 这里我们收集了一套超酷的多次曝光摄影效果图片,希望带给大家 ...

  3. 钓鱼攻击看准2012伦敦奥运会

    作者:DianneLagrimas 2012年夏季奥运会就要开始了,这次将于七月在英国伦敦举行.随着各项相关活动的全面展开,网络犯罪分子也在着手准备骗局和陷阱,等待受害者上钩. 对于想去现场观看201 ...

  4. 企图利用2012伦敦奥运会的三种垃圾邮件

    作者:趋势科技垃圾邮件研究工程师Maydalene Salvador 网络犯罪分子是标准的机会主义者.他们会利用任何吸引人的运动赛事(例如世界杯足球赛和奥运会)实施他们的攻击.随着 2012伦敦奥运会 ...

  5. 宗溯软件聚焦2012伦敦奥运会

    宗溯软件秉承以客户为中心,以高质量的产品和一流的服务的服务理念,引领时尚潮流,聚焦2012伦敦奥运会. 自从与"奥运同生"的官网改建以来,宗溯人积极进取.奋进想起,一直紧跟时代的脚 ...

  6. [I T]2012伦敦奥运会10大最酷高科技

    伦敦奥运会已经开幕,享受精彩赛事之际,你也许会有兴趣了解一些关于奥运会技术支撑方面的事情. 下面,我们快速预览一下伦敦奥运会的一些有趣的高科技: 1.摄影机器人 伦敦奥运会官方图片社Getty Ima ...

  7. 【华为机试真题 C++】奥运会排行榜-100

    题目描述 2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下: 1,首先,gold medal 数量多的排在前面: 2,其次,sliver medal 数量多的排 ...

  8. 【华为机试真题 JAVA】奥运会排行榜-100

    题目描述 2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下: 1,首先,gold medal 数量多的排在前面: 2,其次,sliver medal 数量多的排 ...

  9. 2014九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试题

    九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试六十题 题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9.10月份陪伴了至少三届毕业生找工作的旅 ...

最新文章

  1. 傅里叶帮我看看,谁在照射我?
  2. Expected more than 1 value per channel when training, got input size torch.Size
  3. 云原生时代下,容器安全的“四个挑战”和“两个关键”
  4. 【深度学习】最新「深度学习社区发现」综述论文,174篇文献概述六大类方法(含Github资源)...
  5. python random.randint未定义_学习python - 无法弄清楚random.randint
  6. java jpa_Java JPA 语法知识
  7. ASP输出生成Word 、Excel、Txt文件的方法
  8. [AutoSAR] BSW模块的服务层,重点关注OS部分
  9. 程序员不会测试引起版本事故小结
  10. python编写代码实现一个循环双链表类_Python双向循环链表实现方法分析
  11. matlab 透镜设计,一种用于均匀照明的LED透镜设计方法
  12. java.sql字符串拼成日期_sql字符串转换成日期
  13. MATLAB—view函数观察三视图
  14. 关于支付接口回调地址参数字段是“notify_url”,签名过后的特殊字符url编码以后再解码后出现错误(¬ , ¢, ¤, £)
  15. Linux系统chmod命令读、写、执行
  16. java窗口上 显示学号和姓名_java编程 完成下图所示的图形用户界面设计,要求在界面中输入个人的班级、学号、姓名信息后,点击“...
  17. 开启你的UWA学堂2020年度报告
  18. SwiftUI教程第1章第20:加载Web图片
  19. SOLIDWORKS怎么把STEP曲面转换成实体
  20. 零基础学习python第一课总结

热门文章

  1. 编译原理:句型分析和有关文法实用的说明
  2. python办公自动化学习 day1
  3. gnu coreutils utime.c 源码分析
  4. 2016年1月13日
  5. 工作四年的数据分析师的解惑-数据分析师的日常、晋升通道。
  6. PHP 鸟哥:我也曾经是“不适合”编程的人
  7. 鼎捷T100 Linux基础篇
  8. R语言对文件夹及文件的操作函数
  9. 数字化校园建设之实践二
  10. A *a = new B();详解