# 題目: UVa 11988 - Broken Keyboard (a.k.a. Beiju Text)
# 題目說明
你正在用一個壞掉的鍵盤打一篇文章
其實也沒有那麼糟,唯一的問題是鍵盤會自己打home與end
這種狀況叫做Beiju,你的目標是找到Beiju訊息
INPUT:
輸入一長串的字串
OUTPUT:
輸出Beiju訊息
# 解題方法
用list儲存訊息,以it紀錄當前輸入位置
- 當碰到
[時,it移到最前面 - 當碰到
]時,it移到最後面
# 參考程式碼
#include <iostream>
#include <list>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string input;
while (getline(cin, input)) {
list<char> line;
auto it = line.begin();
for (auto& i : input) {
if (i == '[') it = line.begin();
else if (i == ']') it = line.end();
else line.emplace(it, i);
}
for (auto& i : line) cout << i;
cout << "\n";
}
return 0;
}