你正在用坏了的键盘键入一段很长的文本。嗯,它没那么坏。唯一的问题
使用键盘时,有时会自动按下“home”键或“end”键
(内部)。
你没有意识到这个问题,因为你专注于文本,甚至没有打开
班长完成键入后,您可以在屏幕上看到文本(如果打开显示器)。
在中文里,我们可以称之为北居。你的任务是找到悲剧文本。
输入
有几个测试用例。每个测试用例都是一行,至少包含一个,最多包含100000个
字母、下划线和两个特殊字符“[”和“]”['表示按下“Home”键
内部,“]”表示内部按下“结束”键。输入在文件结束时终止
(共页)。
输出
对于每种情况,在屏幕上打印悲剧文本。
Sample Input
This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University
Sample Output
BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University
思路
用一个链表存储输入的字符,遇到 [ 就将迭代器指向链表开头,遇到 ] 就将迭代器指向链表结尾。
AC代码
#include <iostream>
#include <cstdio>
#include <list>
#include <algorithm>
#include <sstream>
#define AUTHOR "HEX9CF"
using namespace std;
list<char> l;
int main()
{
char ch;
string line;
list<char>::iterator it;
while (getline(cin, line))
{
stringstream ss(line);
for (it = l.begin(); ss >> ch;)
{
if ('[' == ch)
{
it = l.begin();
continue;
}
if (']' == ch)
{
it = l.end();
continue;
}
l.insert(it, ch);
}
for (it = l.begin(); it != l.end(); it++)
{
cout << *it;
}
cout << endl;
l.clear();
}
return 0;
}