版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41145832/article/details/86688104
问题描述
蒜头君每天都在用一款名为“蒜厂浏览器”的软件。在这个浏览器中,一共三种操作:打开页面、回退和前进。它们的功能如下:
打开页面:在地址栏中输入网址,并跳转到网址对应的页面;
回退:返回到上一次访问的页面;
前进:返回到上次回退前的页面,如果上一次操作是打开页面,那么将无法前进。
现在,蒜头君打开浏览器,进行了一系列操作,你需要输出他每次操作后所在页面的网址。
菜鸡代码
不知道为啥……只能过5组
唉……自己太菜了
#include<iostream>
#include<string>
#include<stack>
using namespace std;
int main(){
int n;
cin>>n;
string op,ad;
stack <string> back,forward;
string current;
for(int i=0;i<n;i++){
cin>>op;
if(op=="VISIT"){
cin>>ad;
// append current to back;
if(i!=0){
back.push(current);
current = ad;
} else {
current = ad;
}
stack <string> fish;
swap(fish,forward);//清空栈居然要用如此阴险的操作
cout<<ad<<endl;
}
else if(op=="FORWARD"){
//string current;
if(!forward.empty()){
// do something
back.push (current);
current = forward.top();
forward.pop();
cout<<current<<endl;
} else {
cout<<"Ignore"<<endl;
}
}
else if(op=="BACK"){
if( !back.empty()){
// cout<<"WHEN doing BACK operation, the current is"<<current<<endl;
forward.push(current);
current = back.top();
back.pop();
cout<<current<<endl;
} else {
cout<<"Ignore"<<endl;
}
}
}
}