1. 题目详情

“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。

输入格式:

输入第一行给出正偶数N(≤50),即全班学生的人数。此后N行,按照名次从高到低的顺序给出每个学生的性别(0代表女生,1代表男生)和姓名(不超过8个英文字母的非空字符串),其间以1个空格分隔。这里保证本班男女比例是1:1,并且没有并列名次。

输出格式:

每行输出一组两个学生的姓名,其间以1个空格分隔。名次高的学生在前,名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。

输入样例:

8
0 Amy
1 Tom
1 Bill
0 Cindy
0 Maya
1 John
1 Jack
0 Linda

输出样例:

Amy Jack
Tom Linda
Bill Maya
Cindy John

2. 思路

⭐️首先思考要把数据放在什么样的容器中, 因为输入的数据是根据成绩排名输入的,所以顺序是不能乱的, 且如果把性别作为键, 姓名作为值存入map一类的容器中不太合适, 但是又要根据性别和排名进行分组, 所以我就选择了二维数组存储数据, 第一列存储性别, 第二列存储排名在前N/2的人名, 第三列存储一组中的另一个名字
⭐️选好容器之后思考怎么分组, 前面N/2的排名是没有变的, 所以只要根据前面的人给后面的人分组, 后面的人分成男生和女生, 对前面的N/2,先从后面的开始找小组成员, 后面的顺着找

3. 代码示例

import java.io.*;public class 一帮一 {public static void main(String[] args) throws IOException {BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));int n = Integer.parseInt(bf.readLine());//存储学生姓名性别的数组,前两列存储排在前面一半的学生的姓名和性别,后两列存储小组的另一个成员String[][] stu = new String[n / 2][3];for (int i = 0; i < n / 2; i++) {String[] line = bf.readLine().split(" ");stu[i][0] = line[0];stu[i][1] = line[1];}//排在后半部分的人,根据性别分别放在两个数组中String[] man = new String[n / 2];String[] woman = new String[n / 2];int w = 0, m = 0;for (int i = 0; i < n / 2; i++) {String[] line = bf.readLine().split(" ");if("0".equals(line[0])){woman[w++] = line[1];}if("1".equals(line[0])){man[m++] = line[1];}}int w2 = 0, m2 = 0;for (int i = n / 2 - 1; i >= 0; i--) {//女生要找男生成一组if("0".equals(stu[i][0])){stu[i][2] = man[m2++];}//男生要找女生成一组if("1".equals(stu[i][0])){stu[i][2] = woman[w2++];}}for (int i = 0; i < n / 2; i++) {System.out.println(stu[i][1] + " " + stu[i][2]);}}
}

L1-030 一帮一(java)相关推荐

  1. 帮做Java_求好人帮做Java语言程序设计课件 万谢!急!

    求好人帮做Java语言程序设计课件 万谢!急! 求好人帮做Java语言程序设计课件 万谢!急! <Java语言程序设计> 要求从第1,2题任选一道,从5,6题任选一道.第3,4题必须完成. ...

  2. 1269道Java技术答疑,阿里技术专家帮你Java技术进阶

    云栖社区邀请到6位Java技术专家帮开发者答疑解惑,其中精华的1269道问答已经整理出来,供大家学习! 如有Java相关问题,请向专家提问https://yq.aliyun.com/promotion ...

  3. Java中普通字符串转json,老司机帮您java中如何将字符串转成json

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到java中如何将字符串转成json的问题,如果我们遇到了java中如何将字符串转成json的情况,该怎么处理怎么才能解决 ...

  4. java计算器流程图_帮帮忙:Java小计算器代码,及需求分析.流程图.

    展开全部 package example; import java.awt.*; import java.awt.event.*; public class Calculator extends Fr ...

  5. java 图片识别提取_老司机帮您Java 提取/读取PDF中的图片

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到Java 提取/读取PDF中的图片的问题,如果我们遇到了Java 提取/读取PDF中的图片的情况,该怎么处理怎么才能解决 ...

  6. 面试复盘|运满满(满帮)Java后端22届校招一面二面面经

    面试轮次:技术面一面 方式:视频面试(域名是bsurl) 时间:9月29日14:00 时长:30分钟 开头闲聊 Q:你现在在公司吗? Q:面试官简单自我介绍 Q:那你先自我介绍一下吧 Q:系统说说公司 ...

  7. java记录每个元素出现几次_哪位师傅帮用Java我计算出数组中每个元素出现的次数...

    展开全部 解题思路,找出已给数组a中的最大值,32313133353236313431303231363533e59b9ee7ad9431333363373233根据得到的最大值建立一个新的数组b,新 ...

  8. Java项目:大学生校园帮管理系统(java+Springboot+SSM+layui+HTML+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Ecli ...

  9. 团体程序设计天梯赛-练习集-java

    java不一定能都过 有星号*的都是我java过不去的 但是代码思路都是对的 如果需要c++的 可以留言 L1 L2 L3 001 Hello World 紧急救援 凑零钱 002 打印沙漏 链表去重 ...

最新文章

  1. Elasticsearch简史:源自给老婆开发烹饪App
  2. urlrewrite实现之HTTP 运行库支持
  3. 笔记-中项案例题-2019年下-整体管理
  4. Day12 CSS简单用法
  5. JUST技术:探查城市中的异常事件
  6. CentOS下开启配置端口转发
  7. 在Web服务器磁盘上缓存数据和HTML页面
  8. linux下swftools 的配置
  9. @Scope作用域代理的应用:@RefreshScope注解实现动态刷新配置的底层原理与实现
  10. AI智能电话机器人源码搭建原理及步骤
  11. 第10章 十字消除(《C和C++游戏趣味编程》配套教学视频)
  12. 线性代数笔记(5) 矩阵多项式的运用——哈密顿-凯莱定理
  13. 计算机仿真实验之一 霍尔效应测磁场,物理实验教程
  14. 未检测到与wia兼容的设备_为不支持 WIA 的设备配置基于 intranet 窗体的身份验证...
  15. Eclipse插件10
  16. 微软亚太研发集团2013招聘
  17. 向量中断和非向量中断的区别
  18. 记一次微信H5支付失败(网络环境未能通过安全验证,请稍后再试)解决方案
  19. SQL Server 2016 [修改数据库名称]及[添加次文件和日志文件]
  20. 新概念模拟电路——晶体管构建的放大电路动态分析

热门文章

  1. redis系列七LUR清除算法
  2. sql日期时间相减语句
  3. JAVA-正则表达式匹配教程 使用正则表达式匹配字符串 截取匹配到的字符串
  4. DMIPS CPU主频
  5. Codeforces Round #644(Div. 3) A-H
  6. 华为全屋智能战略再升级 用三把钥匙打开未来家的大门
  7. 如何提交form表单嵌套(提交表单外的数据方法 )
  8. 使用SwiftyJSON解析JSON
  9. FreeTpye库学习笔记:将矢量字体解析为位图
  10. 软考和 PMP 哪个含金量更高点?