HHUOJ 1059 iPhone X
题目描述
iPhone X发售了!Kajitsu虽然没有钱买iPhone X,但是他对排队的人们很感兴趣。
排队的人们构成一个队列,队列的最前方的人可以进入Apple旗舰店,排队的人只能从队尾开始排队。
初始状况下的队列为空。
特别地,队尾的人可能觉得队伍太长,于是离开队列。
现在给定n条指令表示队列的变化情况:
1、Pop
队首离开队伍,并输出该人名称。
2、Quit
队尾离开队伍,并输出该人名称。
3、Join [name]
队尾加入新排队者,名字为[name]。题目保证[name]字符串中不含有空格
现在,Kajitsu想知道离开队伍和进入Apple旗舰店的人的名字。
输入
第一行为一个数字 n
之后n行,第i+1行为一条指令,一定为上述三种字符串中的一种
输入保证合法
(10^2 ≤n≤10^4,人名长度≤10)
输出
对于每一个Pop、Quit指令,输出该人名称
样例输入
6
Join John
Join Jolin
Quit
Join Jay
Pop
Pop
样例输出
Jolin
John
Jay
这道题用vector动态数组很好解决,AC代码如下:
#include<string>
#include<iostream>
#include<vector>
using namespace std;
vector<string>s;
int main()
{
string i, name;
int n;
cin >> n;
while (n--)
{
cin >> i;
if (i == "Join")
{
cin >> name;
s.push_back(name);
}
else if (i == "Pop")
{
cout << s[0] << endl;
s.erase(s.begin());
}
else if (i == "Quit")
{
cout << s[s.size() - 1] << endl;
s.pop_back();
}
}
}