题目:
两个班的同学排队领餐,每位同学只知道跟前面同学是否在一个班,每个同学都有自己的编号,分别找出两个班的同学。输出按编号的从小到大,并且编号小的先输出;如果只有一个班的话,只输出一个班,第二行输出为空;输入非法直接返回error
例如:
输入:
1/N 2/Y 3/N 4/Y
输出:
1 2
3 4
答案:
"""
思路:从第二个同学开始,如果是N就代表跟前面不是同一班,就将count乘-1,再次遇到N再乘-1,
这样正数为一个班,负数为一个班
"""
def Paid(s):
s = s.split()
s1 = []
s2 = []
ss = []
count = 1
s1.append(int(s[0].split("/")[0]))
for i in s[1:]:
if "N" in i:
count *= -1
ss.append(int(i.split("/")[0])*count)
for j in ss:
if j > 0:
s1.append(j)
else:
s2.append(j)
return s1, s2