XJOI 3317 上网 题解

该篇文章介绍了如何处理三种网络浏览行为:访问特定网址、回退到上一个网址和前进到下一个网址,同时处理非法操作的IGNORED输出。

目录

题目描述

输入格式

输出格式

样例输入:

样例输出:


题目描述

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

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

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值