题目
源地址:
http://poj.org/problem?id=1028
理解
这是一道STL里面的栈的运用的一个模板题。构建两个栈,一个存放forward,一个存放backward,然后后再建立一个string类用于存放浏览器当前的页面。题目不难,但是要理解你现在的操作对栈影响是什么,先后顺序一点都不能错。
新技能get
std::stack中几个常用的操作
|stack
代码
#include <iostream>
#include <stack>
#include <string>
using namespace std;
stack<string> forward;
stack<string> backward;
string order, tmp, now;
int main(int argc, char const *argv[])
{
now = "http://www.acm.org/";
while (cin >> order && order.compare("QUIT"))
{
if (!order.compare("VISIT"))
{
backward.push(now);
cin >> now;
cout << now << endl;
while (!forward.empty()) forward.pop();
}
else if (!order.compare("BACK"))
{
if (!backward.empty())
{
forward.push(now);
now = backward.top();
backward.pop();
cout << now << endl;
}
else
{
cout << "Ignored\n";
continue;
}
}
else if (!order.compare("FORWARD"))
{
if (!forward.empty())
{
backward.push(now);
now = forward.top();
forward.pop();
cout << now << endl;
}
else
{
cout << "Ignored\n";
continue;
}
}
}
return 0;
}
更新日志
- 2014年07月20日 已AC。