我又来问问题了hhh...

上网

题目描述:

现在三种浏览网页的行为,跟我们平时上网情景一样

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;
}

4 个赞

我现在给行吗?
可以的话给解决方案,私信

1 个赞