ZOJ 1061 Web Navigation
2024-10-21 07:35:07
题目大意:模拟一个浏览器,打开一个网页、后退或者前进,输出网址。
解法:用两个堆栈分别表示后退保存的网页和前进保存的网页。初始化时把当前页面压入后退堆栈的栈顶。要注意几点,一个是每次记得要清空两个堆栈,另一个,如果后退之后又打开了新的网页,前进的堆栈要清空,这和真实的浏览器的结果是一致的。
参考代码:
#include<iostream>
#include<string>
#include<stack> using namespace std; stack<string> back;
stack<string> forw; int main(){
int n;
cin>>n;
while(n--){
string cmd,url="http://www.acm.org/";
while(!back.empty())
back.pop();
while(!forw.empty())
forw.pop();
back.push(url); while(1){
cin>>cmd;
if(cmd=="QUIT")break;
if(cmd=="VISIT"){
cin>>url;
back.push(url);
cout<<url<<endl;
while(!forw.empty()) //visit new website, empty the forward stack
forw.pop();
}
if(cmd=="BACK"){
if(back.size()==1) //top url is the current
cout<<"Ignored"<<endl;
else{
forw.push(url);
back.pop();
url=back.top();
cout<<url<<endl;
}
}
if(cmd=="FORWARD"){
if(forw.empty())
cout<<"Ignored"<<endl;
else{
url=forw.top();
forw.pop();
back.push(url);
cout<<url<<endl;
}
}
}
if(n>0)
cout<<endl; } return 0;
}
最新文章
- Web 开发基础
- flexbox简介
- Spring框架之AOP
- django是怎么处理请求的
- Javascript 多物体运动——逐行分析代码,让你轻松了解运动的原理
- CodeForces 235C Cyclical Quest(后缀自动机)
- sql基础篇
- mysql 本地操作
- 80、Flask用法简析
- codeforces#1136 C. Nastya Is Transposing Matrices(找规律)
- PAT 1069 The Black Hole of Numbers
- oracle批量更新之使用游标进行分批次更新的5种方式及速度比对
- break continue练习
- Python3 Selenium WebDriver网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
- myEclipse 下配置多个Tomcat
- MDI QMdiArea 多文档区域
- python json.dumps输出中文问题
- 【贪心+优先队列】POJ3190-Stall Reservations
- 算法笔记_051:荷兰国旗问题(Java)
- 重写(Override)