网页浏览历史

题目描述

标准的网页浏览器都提供一个功能:保留最近浏览过页面的历史记录。通过后退或向前按钮就能在历史记录之间跳转。

现在,请你模拟这个功能,接收如下三条指令:

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\n";
                }
                else
                {
                    b.push(a.top());
                    a.pop();
                    cout<<a.top()<<endl;
                }
            }
            else
            {
                if(b.empty())
                {
                    cout<<"ignore\n";
                }
                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

原文地址:https://www.cnblogs.com/luojianyi/p/9266614.html

时间: 2024-10-05 21:50:32

网页浏览历史的相关文章

网页浏览历史纪录(Cookie技术)

一.实现原理: 首先创建一个Cookie用于记录访问网页的编号:或者商品的编号 每次访问完就往这个Cookie中更新新的数据(新建Cookie重新添加,主要用于访问的页面在原有历史纪录中已经存在,需要删除原有纪录重新添加) 在需要显示的历史纪录的数据准备页面进行获取,然后转发给显示JSP页面,进行显示. 二.DEMO 图书数据准备页面:ShowBookList (Servlet) package com.heima.demo1; import java.io.IOException; impor

【编程马拉松】【022-网页浏览历史】

[编程马拉松算法目录] [022-网页浏览历史][工程下载>>>] 1 题目描述 标准的网页浏览器都提供一个功能:保留最近浏览过页面的历史记录.通过后退或向前按钮就能在历史记录之间跳转. 现在,请你模拟这个功能,接收如下三条指令: 1. BACK:回退功能,即回退到上一个访问的页面: 2. FORWARD:使用BACK返回上一页之后,可以使用FORWARD回到下一页: 3. VISIT url:访问指定url的页面,并且所有FORWARD的页面都被清空. 1.1 输入描述: 输入包含多组

BOM 浏览器对象模型_当前窗口的浏览历史 history 对象

当前窗口的浏览历史 window.history 对象 保存了当前窗口访问过的所有页面网址 由于安全原因,浏览器不允许脚本读取这些地址,但是允许在地址之间导航 history.back() 相当于 history.go(-1) 浏览器工具栏的 “前进” 和 “后退” 按钮,其实就是对 History 对象进行操作 // 当前窗口访问过多少个网页 window.history.length // 1 // History 对象的当前状态 // 通常是 undefined,即未设置 window.h

12 款不能少的使网页浏览获得的最佳体验Chrome 扩展

原文地址:http://whosmall.com/?post=414 本文标签: Chrome扩展 网页浏览体验 引擎划词翻译工具 Chrome浏览器 相信不少朋友和我一样,每安装新的操作系统之后,都会使用 Safari/IE 下载 Chrome 浏览器,然后将后者作为主力上网浏览器,而将前者束之高阁.毕竟从体验上说,Chrome拥有快速流畅的浏览体验,当然强大丰富的扩展也是让我一见倾心的关键. 此前我们向各位介绍了数款颇受欢迎的 Chrome 扩展,而今天笔者我起一回私心,给大家安利一些我正在

sqlite3 shell方向键、浏览历史命令不能用的问题

在sqlite3 shell下,按上下方向键可以浏览历史命令,按左右方向键则可以将光标移动到命令中任意字符位置,从而可以修改错误的语句或误敲的字符.所以方向键是sqlite3 shell下最常用的功能. 在debian(包含ubuntu)下,sqlite3 shell方向键默认是不工作的. ?这个问题是有意为之的,原因是:命令行编辑特性是有外部依赖的,sqlite3二进制包的维护者不对可用的外部库作假定,默认不去引用这些外部库,否则,二进制包可能是不可用的. 命令行编辑特性依赖的外部库是read

ecshop 浏览历史样式的修改

ecshop的浏览历史的样式,例如我修改的是只让浏览历史显示浏览历史的商品名称 而不显示浏览历史的商品的价格和图片 首先找到要修改 的文件includes\lib_insert.php 找到函数function insert_history() 函数里面的 $str.='<ul class="clearfix"><li class="goodsimg"><a href="'.$goods['url'].'" targ

Cookie案例-显示商品浏览历史纪录

1 package cn.itcast.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.Date; 6 import java.util.HashMap; 7 import java.util.LinkedHashMap; 8 import java.util.Map; 9 10 import javax.servlet.ServletException; 11 im

rlwrap: command not found和解决linux下sqlplus 提供浏览历史命令行的功能

rlwrap工具可以解决linux下sqlplus 提供浏览历史命令行的功能,和删除先前输入错误的字母等问题 1.安装 需要readline包 这个安装光盘就有 [[email protected] RedHat]# cd RPMS/[[email protected] RPMS]# rpm -Uvh readline*warning: readline-4.3-13.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60eerror: Failed

如何分析局域网上网趋势?(网页浏览)

监控局域网电脑或者手机的网页浏览记录是容易的,但是网页浏览是非常随意上的上网行为,一台PC一天浏览上千个网站都是很平常,对于上网管理来说,除了记录网络链接地址标题外,如果能够通过网址库分析网站类型,统计浏览次数,追踪员工上网意识形态,那么这对上网行为管理会是一个很大的帮助,甚至能给人事评估带来重要数据. 1.在"查询统计"中的"分类统计"选择相关报表类型. 2.根据选择的报表类型就可以查看某一台设备或者指定设备在指定日期的报表统计. 3.报表形式丰富,可以根据网络管