# 題目: UVa 11988 - Broken Keyboard (a.k.a. Beiju Text)

# 題目說明

你正在用一個壞掉的鍵盤打一篇文章
其實也沒有那麼糟,唯一的問題是鍵盤會自己打 homeend
這種狀況叫做 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;
}

# 參考資料

https://www.larrysprognotes.com/UVa%20-%2011988/