POJ1028 Web Navigation
2024-09-07 15:44:28
题目来源:http://poj.org/problem?id=1028
题目大意:
模拟实现一个浏览器的“前进”和“回退”功能。由一个forward stack和一个backward stack实现。
打开浏览器时的正位于http://www.acm.org/。然后浏览器会接受下面四种命令:
BACK:将当前页面压入forward stack,将backward stack顶部页面弹出,成为当前页面。若当前backward stack为空,忽略该命令;
FORWARD:将当前页面压入backward stack,将forward stack顶部的页面弹出,作为当前页面。若当前forward stack为空,忽略该命令;
VISIT:将当前页面压入backward stack,将指定的URL作为当前页面;
QUIT:退出浏览器。
输入:命令的序列,以QUIT作为结束。
输出:如果当前页面发生了改变,输出改变后的当前页面,如果命令被忽略,输出“Ignored.”
Sample Input
VISIT http://acm.ashland.edu/
VISIT http://acm.baylor.edu/acmicpc/
BACK
BACK
BACK
FORWARD
VISIT http://www.ibm.com/
BACK
BACK
FORWARD
FORWARD
FORWARD
QUIT
Sample Output
http://acm.ashland.edu/
http://acm.baylor.edu/acmicpc/
http://acm.ashland.edu/
http://www.acm.org/
Ignored
http://acm.ashland.edu/
http://www.ibm.com/
http://acm.ashland.edu/
http://www.acm.org/
http://acm.ashland.edu/
http://www.ibm.com/
Ignored
题干已经把如何实现讲解得很清楚,照着写就可以了,要是不给提示,这倒会是道很有意思的题。
//////////////////////////////////////////////////////////////////////////
// POJ1028 Web Navigation
// Memory: 264K Time: 47MS
// Language: C++ Result: Accepted
////////////////////////////////////////////////////////////////////////// #include <iostream>
#include <string>
#include <stack> using namespace std; stack<string> forwardStack;
stack<string> backwardStack; void clearForwardStack() {
while (!forwardStack.empty()) {
forwardStack.pop();
}
} int main() {
string operation;
string currentURL = "http://www.acm.org/";
string nextURL;
while (cin >> operation && operation != "QUIT") { switch (operation[]) {
case 'V':
cin >> nextURL;
backwardStack.push(currentURL);
currentURL = nextURL;
cout << currentURL << endl;
clearForwardStack();
break;
case 'B':
if (backwardStack.empty()) {
cout << "Ignored" << endl;
} else {
forwardStack.push(currentURL);
currentURL = backwardStack.top();
cout << currentURL << endl;
backwardStack.pop();
}
break;
case 'F':
if (forwardStack.empty()) {
cout << "Ignored" << endl;
} else {
backwardStack.push(currentURL);
currentURL = forwardStack.top();
cout << currentURL << endl;
forwardStack.pop();
}
break;
}
}
system("pause");
return ;
}
最新文章
- C++11的简单线程池代码阅读
- PostgreSQL-系统表、系统视图
- webpack入坑之旅(六)配合vue-router实现SPA
- select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
- TCP UDP 协议的区别和联系
- MySQL 获得当前日期时间 函数
- 【Xamarin挖墙脚系列:学习资料大放送】
- Android Studio无法关联Api23源码-提示Souces for android api 23 platform not found
- asp.net打印网页后自动关闭网页【无需插件】
- bzoj 2004: [Hnoi2010]Bus 公交线路
- SpringMvc 请求中日期类型参数接收一二事儿
- java 大文件分割与组装
- Vulcan 基于Meteor的APollO框架 , grapesjs 用于可视化生成Html 页面
- spark.yarn.jar和spark.yarn.archive的使用
- 2.Early Education of Children 儿童的早期教育
- iOS-QQ临时对话、QQ群申请跳转
- 一个将PDF转word、图片、PPT的在线工具
- Asp.net Core Startup Class中是如何获取配置信息的
- 转 Java对日期Date类进行加减运算一二三
- vim 对齐线