幼儿园分班问题 【Java】
题目描述
幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友是否同班,请你帮忙把同班的小朋友找出来。
小朋友的编号是整数,与前一位小朋友同班用Y表示,不同班用N表示。
输入描述
输入由空格分开的小朋友编号和是否同班的标志,如:
6/N 2/Y 3/N 4/Y 表示一共有4位小朋友
2和6是同班,3和2不同班,4和3同班。
小朋友总数<999
不考虑输入格式错误。
输出描述
输出每个班级的小朋友编号,用空格隔开
输出结果按编号大小升序排列
第一个分班的小朋友编号较小的排在第一队,输出在第一行
若只有一个班级,则第二行为空
若输入不符合要求,则输出“ERROR"
示例1
-
输入
1/N 2/Y 3/N 4/Y
-
输出
1 2 3 4
-
说明
2和1同一班,3与2不是同一个班,4和3同一班
解题思路
- 用一个对象表示一个小朋友在队伍的位置信息,然后统计每个小朋友的班级编号
- 分班到两个集合
- 对输出要求进行输出即可,注意排序
- 对输入异常(编号不能小于0,不能大于999)时,结束程序,并输出ERROR
代码
import java.util.*;
public class Main {
public static void main(String[] args) {
// 处理输入
Scanner input = new Scanner(System.in);
String line = input.nextLine();
String[] split = line.split(" ");
Node[] nodes = new Node[split.length];
boolean isFailed = false;
for (int i = 0; i < split.length; i++) {
String[