目录
题目描述
现在三种浏览网页的行为,跟我们平时上网情景一样
visit: 访问某个特定的网址,相当于我们在当前页面的地址栏输入一个url
back: 回到上一次访问的网址,相当于下图中的左箭头
forward: 相当于下图中的右箭头。
对于每个操作,输出当前访问的网址,若操作非法,输出"Ignored"
![]()
要注意,一旦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/
代码:
#include<bits/stdc++.h>
//#include <ctime>
//#include<windows.h>
//#include <conio.h> //_kbhit()
using namespace std;
string a[2050],b;
int l=1,cnt=1;//l为指针,cnt为字符串数组长度;
bool ok=0;
int main()
{
a[1]="http://www.hzxjhs.com/";
while(b[0]!='Q')
{
cin>>b;
if (b[0]=='V')
{
cin>>b;
cnt++;
for (int i=l+1; i<cnt; i++)
{
a[i]=" ";
}
l=cnt;
cout<<b<<endl;
a[cnt]=b;
}
else if(b[0]=='B')
{
int k=l;
while(1)
{
if (l-1>0) l--;
else
{
ok=1;
break;
}
if (a[l]!=" ")break;
}
if (ok) cout<<"Ignored\n";
else cout<<a[l]<<endl;
}
else if (b[0]=='F')
{
int k=l;
while(1)
{
if (l+1<=cnt) l++;
else
{
ok=1;
break;
}
if (a[l]!=" ")break;
}
if (ok) cout<<"Ignored\n";
else cout<<a[l]<<endl;
}
ok=0;
}
return 0;
}
该篇文章介绍了如何处理三种网络浏览行为:访问特定网址、回退到上一个网址和前进到下一个网址,同时处理非法操作的IGNORED输出。
697





