找出同班小朋友 题目描述 幼儿园两个班的小朋友排队时混在了一起 每个小朋友都知道自己跟前面一个小朋友是不是同班 请你帮忙把同班的小朋友找出来 小朋友的编号为整数 与前面一个小朋友同班用Y表示 不同班用N表示 输入描述 输入为空格分开的小朋友编号和是否同班标志 比如 6/N 2/Y 3/N 4/Y 表示一共有4位小朋友 2和6是同班,3和2不同班,4和3同班 小朋友总数不超过999 0 < 每个小朋友编号 < 999 不考虑输入格式错误 输出描述 每一行记录一班小朋友的编号 编号用空格分开 并且 编号需要按照大小升序排列,分班记录中第一个编号小的排在第一行 如果只有一个班的小朋友 第二行为空 如果输入不符合要求输出字符串ERROR。用python实现
时间: 2024-02-21 11:57:42 浏览: 79
python 有n个人围成一圈,顺序排号,问最后留下的是原来第几号的那位。(示例)
5星 · 资源好评率100%
以下是一种可能的实现方式:
```python
def find_same_class_students(input_str):
students = input_str.strip().split(' ')
if len(students) % 2 != 0:
return 'ERROR'
classes = [{students[0]}]
for i in range(1, len(students), 2):
if students[i+1] == 'Y':
classes[-1].add(students[i])
elif students[i+1] == 'N':
classes.append({students[i]})
else:
return 'ERROR'
classes = [' '.join(sorted(cls)) for cls in sorted(classes, key=lambda x: min(x))]
return '\n'.join(classes) if len(classes) > 1 else f"{classes[0]}\n"
if __name__ == '__main__':
input_str = input()
output_str = find_same_class_students(input_str)
print(output_str)
```
使用方法:
将以上代码保存为 `solution.py` 文件,然后在终端中执行如下命令:
```
$ python solution.py
6/N 2/Y 3/N 4/Y
```
其中 `6/N 2/Y 3/N 4/Y` 表示输入的数据,程序将输出符合要求的小朋友信息。
阅读全文