练一练「CLZ 的银行循环队列」
CLZ 银行只有两个接待窗口,VIP窗口和普通窗口,VIP 用户进入 VIPVIP 窗口排队,剩下的进入普通窗口排队。现有 M次操作,操作有四种类型,如下:
输入描述
输出描述
输入输出样例
示例 1
输入
5
IN xiaoming N
IN Adel V
IN laozhao N
OUT N
IN CLZ V
copy
输出
Adel
CLZ
laozhao
copy
运行限制
最大运行时间:1s
最大运行内存: 128M
根据老师的资料,结合自己的认识。写出如下代码:
Vqueue = []
Nqueue = []
def inque(name, type):#入队,设置type位来表示哪一个队列
global Vqueue ,Nqueue
if (type == 'V'):
Vqueue.append(name)
else:
Nqueue.append(name)
def outque(type):#出队
global Vqueue ,Nqueue
if (type == 'V'):
if(len(Vqueue)==0):#判断是否为空队列
return None
else:
s=Vqueue[0]如果不是空,则返回Vqueue列表的第一行数据
Vqueue.remove(Vqueue[0])#随后删除
return s
else:
if (len(Nqueue)==0):
return None
else:
s = Nqueue[0]
Nqueue.remove(Nqueue[0])
return s
if __name__ == '__main__':#设置主函数
M = 0
M = int(input())
while M > 0:#while循环用于循环次数不确定的场景,循环m次
M -= 1
op = input().split()#输入op
# print(op[0])
if op[0] == 'IN':
inque(op[1], op[2])#op为in,则输入name和type
# print('in')
else:
outque(op[1])#op为out,则输入type
# print('out')
# print("VVVVV",Vqueue)
# print("NNNN",Nqueue)
# print(M)
s = outque('V')
while s!=None:#若v不为空,执行以下操作
print(s)#输出队首元素
s = outque('V')#队首出队
s = outque('N')
while s != None:
print(s)
s = outque('N')