上网
题目描述:
现在三种浏览网页的行为,跟我们平时上网情景一样
visit: 访问某个特定的网址,相当于我们在当前页面的地址栏输入一个url
back: 回到上一次访问的网址,相当于下图中的左箭头
forward: 相当于下图中的右箭头。
![]()
要注意,一旦visit操作之后,右箭头就会消失,因为刚才输入的网址已经是最新网址,没有更新的了,可以自己试试再来做这个题。
假设一开始正在访问的第一个网址为http://www.hzxjhs.com/
输入格式:
输入若干行,碰到"QUIT"结束,表示关闭浏览器
其他一共三种输入类型。
VISIT 操作后面会跟一个字符串,表示网址
BACK
FORWARD
输出格式:
对于每个操作,输出当前访问的网址,若操作非法,输出"Ignored"
样例输入:
VISIT http://www.codeforces.com/
VISIT http://www.topcoder.com/
BACK
BACK
BACK
FORWARD
VISIT http://www.codechef.com/
BACK
BACK
FORWARD
FORWARD
FORWARD
QUIT
样例输出:
http://www.codeforces.com/
http://www.topcoder.com/
http://www.codeforces.com/
http://www.hzxjhs.com/
Ignored
http://www.codeforces.com/
http://www.codechef.com/
http://www.codeforces.com/
http://www.hzxjhs.com/
http://www.codeforces.com/
http://www.codechef.com/
Ignored
约定:
所有的网址都没有空格,最长的网址为70
总的操作次数不超过1000
WA 70分 我的代码:
#include<bits/stdc++.h>
using namespace std;
string fa[102020],zhi[102033]={"http://www.hzxjhs.com/"};
int main()
{
int i=0,j=0;
while(1)
{
i++;
cin>>fa[i];
if(fa[i]=="QUIT")break;
if(fa[i]=="VISIT")
{
string s;
cin>>s;
zhi[++j]=s;
cout<<zhi[j]<<endl;
}
if(fa[i]=="BACK")
{
if(zhi[j-1]!="")cout<<zhi[--j]<<endl;
else cout<<"Ignored"<<endl;
}
if(fa[i]=="FORWARD")
{
if(zhi[j+1]!="" && fa[i-1]!="VISIT")cout<<zhi[++j]<<endl;
else cout<<"Ignored"<<endl;
}
}
return 0;
}