标准的网页浏览器都提供一个功能:保留最近浏览过页面的历史记录。通过后退或向前按钮就能在历史记录之间跳转。
现在,请你模拟这个功能,接收如下三条指令:
1. BACK:回退功能,即回退到上一个访问的页面;
2. FORWARD:使用BACK返回上一页之后,可以使用FORWARD回到下一页;
3. VISIT url:访问指定url的页面,并且所有FORWARD的页面都被清空。
解析:
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
int n;
while (cin >> n && n)
{
vector<string> urls;
string cmd, url;
int valid = 0, index = -1;
for (int i = 0; i < n; ++i)
{
cin >> cmd;
if (cmd == "VISIT")
{
urls.erase(urls.begin() + (index + 1), urls.end());
valid = index + 1;
cin >> url;
urls.push_back(url);
++valid;
++index;
cout << url << endl;
}
else if (cmd == "BACK" && index > 0)
cout << urls[--index] << endl;
else if (cmd == "FORWARD" && index < valid - 1)
cout << urls[++index] << endl;
else cout << "ignore" << endl;
}
cout << endl;
}
return 0;
}