zoukankan      html  css  js  c++  java
  • 浏览器(Web Navigation) codevs 5373 POJ 1028 简单模拟

    这是一道水题,没错,我就是加上来文章数量的

    【题目描述】 网页浏览器者有后退与前进按钮,一种实现这两个功能的方式是用两个栈, “前进栈”、“后退栈”。 这里你需要实现以下几个功能: BACK: 如果“后退栈”为空则忽略此命令。否则将当前两面压入“前进栈”, 从“后退栈”中取出栈顶页面,并设置为当前页面。 FORWARD: 如果“前进栈”为空则忽略此命令。否则将当前两面压入“后 退栈”,从“前进栈”中取出栈顶页面,并设置为当前页面。 VISIT: 将当前页面压入“后退栈”、并将当前页面置为指定页面,并将“前 进栈”置空。 QUIT: 退出。 假设此浏览器初始页面为 http://www.acm.org/

    【输入格式】 输入为一系列命令:BACK, FORWARD, VISIT 和 QUIT,页面网址为不含空 格的字符串 假设任一时刻任意时刻两个栈中的元素都不会超过 100。 最后一个命令为 QUIT。

    【输出格式】 输对于除 QUIT 外所有命令,输出当前页面(网址) 如果该命令被忽略则输出“Ignored”。

    【样例输入】 VISIT http://acm.ashland.edu/ VISIT http://acm.baylor.edu/acmicpc/ BACK BACK BACK FORWARD VISIT http://www.ibm.com/ BACK BACK FORWARD FORWARD FORWARD QUIT

    【样例输出】 http://acm.ashland.edu/ http://acm.baylor.edu/acmicpc/ http://acm.ashland.edu/ http://www.acm.org/ Ignored http://acm.ashland.edu/ http://www.ibm.com/ http://acm.ashland.edu/ http://www.acm.org/ http://acm.ashland.edu/ http://www.ibm.com/ Ignored

    【样例解释】 无。

    【数据范围与规定】 对于100%的数据,操作数量不超过1000,每行字符串长度不超过500。

    string模拟即可,char数组可能会麻烦一些。详见代码

     1 #include<iostream>
     2 #include<cstdio> 
     3 #include<string>
     4 using namespace std;
     5 template<class T> inline void read(T &_a){
     6     bool f=0;int _ch=getchar();_a=0;
     7     while(_ch<'0' || _ch>'9'){if(_ch=='-')f=1;_ch=getchar();}
     8     while(_ch>='0' && _ch<='9'){_a=(_a<<1)+(_a<<3)+_ch-'0';_ch=getchar();}
     9     if(f)_a=-_a;
    10 }
    11 
    12 int h_p,h_n;
    13 string s_p[1001],s_n[1001],now="http://www.acm.org/";
    14 char op[10];
    15 
    16 int main()
    17 {
    18     freopen("kami.in","r",stdin);
    19     freopen("kami.out","w",stdout);
    20     while(scanf("%s",op+1)==1)
    21     {
    22         if(op[1]=='Q') break;
    23         else if(op[1]=='B')
    24         {
    25             if(!h_p) { printf("Ignored
    "); continue; }
    26             s_n[++h_n]=now;
    27             now=s_p[h_p--];
    28         } else if (op[1]=='F'){
    29             if(!h_n) { printf("Ignored
    "); continue; }
    30             s_p[++h_p]=now;
    31             now=s_n[h_n--];
    32         } else {
    33             s_p[++h_p]=now;
    34             cin>>now;
    35             h_n=0;
    36         }
    37         cout<<now<<endl;
    38     }
    39     return 0;
    40 }
    View Code
  • 相关阅读:
    Class:向传统类模式转变的构造函数
    连载:面向对象葵花宝典:思想、技巧与实践(34)
    Java Web文件下载
    POJ 1469(裸二分匹配)
    查看程序占用tomcat内存情况
    《对象程序设计》课程 课程设计、考试安排 及 教师建议(2014.06.30修正)
    zoj 1880
    STM8S PWM 应用 呼吸灯
    Android开发系列(二十四):Notification的功能与使用方法
    HDU 4499 Cannon (暴力搜索)
  • 原文地址:https://www.cnblogs.com/jaywang/p/7695212.html
Copyright © 2011-2022 走看看