华为OD机试真题B卷 Java 实现【分班】,附详细解题思路

华为OD机试真题B卷 Java 实现【分班】,附详细解题思路_第1张图片

一、题目描述

幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友是否同班,请你帮忙把同班的小朋友找出来。

小朋友的编号为整数,与前一位小朋友同班用Y表示,不同班用N表示。

二、输入描述

输入为空格分开的小朋友编号和是否同班标志。

比如:6/N 2/Y 3/N 4/Y,表示共4位小朋友,2和6同班,3和2不同班,4和3同班。

其中,小朋友总数不超过999,每个小朋友编号大于0,小于等于999。

不考虑输入格式错误问题。

三、输出描述

输出为两行,每一行记录一个班小朋友的编号,编号用空格分开。且:

  1. 编号需要按照大小升序排列,分班记录中第一个编号小的排在第一行;
  2. 若只有一个班的小朋友,第二行为空行;
  3. 若输入不符合要求,则直接输出字符串ERROR。

四、解题思路

题目要求根据小朋友的编号和同班标志将小朋友分为两个班级,并按照编号升序输出每个班级的小朋友。

我们可以使用两个列表(list1和list2)来存储两个班级的小朋友编号,遍历输入的小朋友信息,根据同班标志将小朋友添加到对应的列表中。然后对两个列表进行排序,并按照要求输出两个班级的小朋友编号。

你可能感兴趣的:(java,算法,华为机试)