HHUOJ 1059 iPhone X

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();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43765333/article/details/88414091