太原建站推广,怎么增加网站百度收录,网站建设与管理课程介绍,项目计划书模板范文题目#xff1a;
VISIT打开界面#xff0c;BACK回退#xff0c;FORWARD前进。 现在输入n行#xff0c;每行首先输入一个字符串#xff0c;如果是VISIT#xff0c;后面再输入一行不含空格的网址#xff0c;如果是BACK#xff0c;回退#xff0c;如果是FORWARD#xf…题目
VISIT打开界面BACK回退FORWARD前进。 现在输入n行每行首先输入一个字符串如果是VISIT后面再输入一行不含空格的网址如果是BACK回退如果是FORWARD前进。 对每次操作如果能操作成输出操作后的网址否则输出Ignore。 这里回退的意思是返回上一次访问的网页前进意思是返回回退之前的网页。如果回退上一次操作是打开网页那么无法前进。也就是说每次打开网页后的下一个操作不能是回退。 输入
10
VISIT https://www.126.com/
VISIT https://www.taobao.com/
BACK
BACK
FORWARD
FORWARD
BACK
VISIT https://www.163.com/
FORWARD
BACK输出
https://www.126.com/
https://www.taobao.com/
https://www.126.com/
Ignore
https://www.taobao.com/
Ignore
https://www.126.com/
https://www.163.com/
Ignore
https://www.126.com/分析与解答
打开网页入栈回退栈顶元素出栈如果栈里面只有一个元素也就是说只打开了一个界面也是无法回退的。由于还需要前进所以这里还要加一个栈存出栈的元素。由题目要求每次打开网页都要把这个栈给清空。这里为什么加一个栈而不是数组是因为距离的问题最近的最先出去先出去的网站一定不是最近的那个网站。 然后根据要求进行模拟即可。输出存放网站的栈的栈顶元素即是当前网页。
#includeiostream
#includecstdio
#includestack
#includealgorithm
#includestring
using namespace std;int main(){int n;cinn;stackstring k1;stackstring k2;for(int i0;in;i){string s;cins;if(sVISIT){string s2;cins2;k1.push(s2);while(!k2.empty()){k2.pop();}// couts2endl;;}else if(sBACK){if(k1.size()1) {k2.push(k1.top());k1.pop();}else{coutIgnoreendl;continue;}}else{if(!k2.empty()){// coutk2.top()endl;k1.push(k2.top());k2.pop();}else{coutIgnoreendl;continue;}}coutk1.top()endl;}return 0;
}