#10043. 双向队列
双向队列
✅
题目描述
我们定义一个**双端队列(deque),它支持:
- 左进队(LIN X):把整数 插入到队列左端;
- 右进队(RIN X):把整数 插入到队列右端;
- 左出队(LOUT):将左端的元素出队;
- 右出队(ROUT):将右端的元素出队。
给定一系列操作,请模拟执行。若某条命令非法(如试图在空队列中出队),请输出错误信息。
输入格式
- 第 1 行:一个整数 ,表示命令总数,。
- 第 2~(M+1) 行:每行一条命令,可能为
LIN X
、RIN X
、LOUT
、ROUT
。
输出格式
- 第 1 行:输出 M 次操作之后队列的最终状态,从左到右输出,元素之间用空格隔开。如果队列为空则输出空行;
- 之后每条不合法的命令,输出形如
X ERROR
的信息,其中 X 为这条命令的编号(从 1 开始)。
样例输入
8
LIN 5
RIN 6
LIN 3
LOUT
ROUT
ROUT
ROUT
LIN 3
样例输出
3
7 ERROR
🧠 提示:
- 使用
getline()
结合stringstream
方便处理含参数和不含参数的命令。 - 所有非法情况(出空队列、参数缺失、命令拼写错误)都会记录并输出编号。