POJ1028 Web Navigation
题目来源: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 ;
}
POJ1028 Web Navigation的更多相关文章
- POJ-1028 Web Navigation 和TOJ 1196. Web Navigation
Standard web browsers contain features to move backward and forward among the pages recently visited ...
- [POJ1028]Web Navigation(栈)
这题是01年East Central North的A题,目测是签到题 Description Standard web browsers contain features to move backwa ...
- poj 1028 Web Navigation
Web Navigation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31088 Accepted: 13933 ...
- POJ 1028:Web Navigation
Web Navigation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30828 Accepted: 13821 ...
- Web Navigation
Description Standard web browsers contain features to move backward and forward among the pages rece ...
- poj 1028 Web Navigation(模拟)
题目链接:http://poj.org/problem? id=1028 Description Standard web browsers contain features to move back ...
- poj 1208 Web Navigation(堆栈操作)
一.Description Standard web browsers contain features to move backward and forward among the pages re ...
- ZOJ 1061 Web Navigation
原题链接 题目大意:模拟一个浏览器,打开一个网页.后退或者前进,输出网址. 解法:用两个堆栈分别表示后退保存的网页和前进保存的网页.初始化时把当前页面压入后退堆栈的栈顶.要注意几点,一个是每次记得要清 ...
- POJ 1028 Web Navigation 题解
考查代码能力的题目.也能够说是算法水题,呵呵. 推荐新手练习代码能力. 要添加难度就使用纯C实现一下stack,那么就有点难度了,能够使用数组模拟环形栈.做多了,我就直接使用STL了. #includ ...
随机推荐
- (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation
[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation http://blog.csdn.net/walilk/articl ...
- 洛谷【P1009】阶乘之和
题目传送门:https://www.luogu.org/problemnew/show/P1009 高精度加法:https://www.cnblogs.com/AKMer/p/9722610.html ...
- mysql 用户和存储过程相关命令
如何显示所有的存储过程?select `name` from mysql.proc where db='db_name' and `type`='procedure';orshow procedure ...
- 江苏省大学生程序设计竞赛(JSCPC)赛后感
仔细的算了一下,这是我第6次参加与acm有关的比赛了,每一次的经历,在我看来都是一次对自己能力的认识与评估,身边学计算机专业的同龄人对这项比赛的热爱,专注,勇气以及所获得的成就让要好好努力,更要加倍付 ...
- sql查询将列里面的值替换为别的值但是实际值不变
数据库有一张表BUG(缺陷记录表) 里面有字段severity(严重程度): severity的值实际为1,2,3,4,但希望在查询结果中将severity的1,2,3,4值显示为其他的值,但seve ...
- qt程序异常结束crashed
今天调试以前写的opencv的程序发现每次一点运行就报错误 Starting D:\Qt\QProjects\build-HelloWorld-lian-Debug\debug\HelloWorld. ...
- hadoop mapreduce 计算平均气温的代码,绝对原创
1901 46 1902 21 1903 48 1904 33 1905 43 1906 47 1907 31 1908 28 1909 26 1910 35 1911 30 1912 16 1913 ...
- RN控件之TextInput
/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; import Rea ...
- win7 32位安装 python 及Numpy、scipy、matplotlib函数包
操作系统: win7 64位,但选择安装32位的python. 1,python下载安装 https://www.python.org/downloads/ 下载2.7版,一路下一步安装. 并在pat ...
- 让开发更简单 —— Coding Enterprise 发布
今天,我们很高兴地宣布 Coding Enterprise 发布了 —— Coding Enterprise 是 CODING 专为企业打造的软件开发协作平台,提供了针对中小型企业的公有云版本和针对大 ...