zoukankan      html  css  js  c++  java
  • 网页浏览历史

    题目描述

    标准的网页浏览器都提供一个功能:保留最近浏览过页面的历史记录。通过后退或向前按钮就能在历史记录之间跳转。
    现在,请你模拟这个功能,接收如下三条指令:
    1. BACK:回退功能,即回退到上一个访问的页面;
    2. FORWARD:使用BACK返回上一页之后,可以使用FORWARD回到下一页;
    3. VISIT url:访问指定url的页面,并且所有FORWARD的页面都被清空。

    输入描述:

    输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤100)。

    紧接着有n行,每一行包含一条指令。其中url是不包含空格、长度不超过100的非空字符串。

    输出描述:

    对应每组数据,为每条指令输出当前页面的URL。

    如果当前指令无效(例如没有上一页时执行BACK指令、或没有下一页时执行FORWARD指令),则输出一行“ignore”。

    每组数据之后输出一个空行作为分隔。



    先来我的代码:
    #include<iostream>
    #include<stack>
    #include<stdio.h>
    using namespace std;
    int find_order(string t)
    {
        string a="VISIT";
        string b="BACK";
        string c="FORWARD";
        if(t==a)
            return 1;
        else if(t==b)
            return 2;
        else
            return 3;
    }
    
    int main()
    {
        stack<string> a;
        stack<string> b;
        string t1,t2;
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            for(int i=0; i<n; i++)
            {
                cin>>t1;
                int c=find_order(t1);
                if(c==1)
                {
                    cin>>t2;
                    a.push(t2);
                    cout<<t2<<endl;
                    while( !b.empty() )
                        b.pop();
                }
                else if(c==2)
                {
                    if(a.size()<2)
                    {
                        cout<<"ignore
    ";
                    }
                    else
                    {
                        b.push(a.top());
                        a.pop();
                        cout<<a.top()<<endl;
                    }
                }
                else
                {
                    if(b.empty())
                    {
                        cout<<"ignore
    ";
                    }
                    else
                    {
                        a.push(b.top());
                        cout<<b.top()<<endl;
                        b.pop();
                    }
                }
            }
            cout<<endl;
            while( !a.empty() )
                a.pop();
            while( !b.empty() )
                b.pop();
    
        }
        return 0;
    }

    我就是随笔一下,以便以后回忆,如果有人想做一下  click here

  • 相关阅读:
    C# DES加密解密
    VC SOCKET 压缩通信学习
    ASPX一句话爆破工具
    VC读取文件内容
    VC查找字符串
    (学习记录)代码注入之远程线程篇
    WINSOCK 传送文件
    VC数据类型
    占用字节数求法
    HDU
  • 原文地址:https://www.cnblogs.com/luojianyi/p/9266614.html
Copyright © 2011-2022 走看看