第一行输入一个整数N,表示对队列进行的操作总数。
下面N行每行输入一个字符串S,表示操作的种类。
如果S为"add",则后面还有一个整数X表示向队列尾部加入整数X。
如果S为"poll",则表示弹出队列头部操作。
如果S为"peek",则表示询问当前队列中头部元素是多少。
对于每一个为"peek"的操作,输出一行表示当前队列中头部元素是多少。
6 add 1 add 2 add 3 peek poll peek
1 2
1<=N<=1000000
-1000000<=X<=1000000
数据保证没有不合法的操作
import sys
class stackToQueue(object):
def __init__(self):
self.stackPush = []
self.stackPop = []
self.stackTemp = []
def pushToPop(self):
if not self.stackPop:
while self.stackPush:
self.stackPop.append(self.stackPush.pop())
def add(self, num):
self.stackPush.append(num)
self.pushToPop()
def peek(self):
if self.stackPop:
return self.stackPop[len(self.stackPop) - 1]
else:
self.pushToPop()
return self.stackPop[len(self.stackPop) - 1]
def poll(self):
if self.stackPop:
self.stackPop.pop()
else:
self.pushToPop()
self.stackPop.pop()
N = int(input())
result = stackToQueue()
for i in range(N):
line = sys.stdin.readline().strip()
word = line.split()
if word[0] == "add":
result.add(int(word[1]))
elif word[0] == "peek":
print(result.peek())
elif word[0] == "poll":
result.poll()