OD-找出同班小朋友(Python)

找出同班小朋友

题目描述

幼儿园两个班的小朋友排队时混在了一起
每个小朋友都知道自己跟前面一个小朋友是不是同班
请你帮忙把同班的小朋友找出来
小朋友的编号为整数
与前面一个小朋友同班用Y表示
不同班用N表示

输入描述

输入为空格分开的小朋友编号和是否同班标志
比如 6/N 2/Y 3/N 4/Y
表示一共有4位小朋友
26是同班,32不同班,43同班
小朋友总数不超过999
0 < 每个小朋友编号 < 999
不考虑输入格式错误

输出描述

每一行记录一班小朋友的编号 编号用空格分开
并且

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

示例一

输入

1/N 2/Y 3/N 4/Y

输出

1 2

说明

2的同班标记为Y因此和1同班
3的同班标记位N因此和1,2不同班
4的同班标记位Y因此和3同班

代码:

# !E:\pythonScript\venv python3
# -*- coding: utf-8 -*-
"""
Date: 2023/4/3
Author: kang
ep:
1/N 2/Y 3/N 4/Y
"""
while True:
    try:
        children = input().split()
        one_class = []
        two_class = []
        is1 = True
        for i in range(len(children)):
            id = children[i][0]
            same = children[i][2]
            if i == 0:
                one_class.append(id)
                continue
            elif same == "N":
                is1 = not is1
            if is1:
                one_class.append(id)
            else:
                two_class.append(id)
        one_class.sort()
        two_class.sort()
        if len(two_class) > 0:
            b1 = " ".join(str(i) for i in one_class)
            b2 = " ".join(str(i) for i in two_class)
            if int(one_class[0]) < int(two_class[0]):
                print(b1)
                print(b2)
            else:
                print(b2)
                print(b1)
        else:
            b1 = " ".join(str(i) for i in one_class)
            print(b1)
    except Exception as e:
        print('ERROR')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值