`
200830740306
  • 浏览: 109443 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

poj1028 栈的简单应用

阅读更多
package easy;


import java.util.LinkedList;
import java.util.Scanner;

/**
 *poj1028
 * 太郁闷了,刚开始还一直以为是sample错了。
 * 因为自己模拟的结果总是和sample有一个不一样,
 * 更重要的是我在网上找了一个ac的程序,其输出却和我的一样,所以我才会以为sample错了。
 *最后,点了几下浏览器才发现啊
 * 原来每次访问新的页面时,记录向前的栈的重新清空。
 * @author NC
 */
public class Poj1028 {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        LinkedList<String> stackBack = new LinkedList();
        LinkedList<String> stackForward = new LinkedList();
        String current = "http://www.acm.org/";
        while (scan.hasNext()) {
            String s = scan.nextLine();
            if (s.startsWith("QUIT")) {
                break;
            }
            if (s.startsWith("VISIT")) {
                if (stackBack.size() <= 100) {
                    stackBack.push(current);
                    stackForward.clear();//就是这里,原先忘了清空了
                }
                current = s.substring(6);
                System.out.println(current);
            }
            if (s.startsWith("BACK")) {
                if (stackBack.isEmpty()) {
                    System.out.println("Ignored");
                } else {
                    if (stackForward.size() <= 100) {
                        stackForward.push(current);
                    }
                    String a = stackBack.pop();
                    System.out.println(a);
                    current = a;
                }
            }
            if (s.startsWith("FORWARD")) {
                if (stackForward.isEmpty()) {
                    System.out.println("Ignored");
                } else {
                    if (stackBack.size() <= 100) {
                        stackBack.push(current);
                    }
                    String a = stackForward.pop();
                    System.out.println(a);
                    current = a;
                }
            }
        }
    }
}

分享到:
评论

相关推荐

    北京大学poj题目类型分类

    简单题是POJ题目中最基本的题型,通常涉及基本算法和数据结构的应用,如数组、链表、栈、队列等。这些题目要求学习者具备基本编程能力和算法基础。 * 1000 A+B Problem:这是一个简单的加法题目,要求学习者编写一...

    poj.rar_poj

    【描述】"我最近做的几个poj题目源代码,可能比较简单" 暗示了这些代码是作者近期解决的一些基础或入门级别的POJ题目。源代码的分析可以帮助我们了解基础的编程思维和常见的算法应用。简单题目通常涵盖数组操作、...

    poj-problem.rar_poj

    例如,二叉树、队列、堆、栈、图等数据结构在POJ问题中有着广泛的应用。 4. **复杂度分析**:理解并估算算法的时间复杂度和空间复杂度,是保证程序在限定时间内完成的关键。报告会详细计算并解释算法的复杂度,以便...

    POJ题目分类

    - **内容**: 把复杂的问题分解为简单的小问题,通过保存已解决的子问题的答案来避免重复计算。 - **示例题目**: poj1068, poj2632, poj1573, poj2993, poj2996 - **知识点**: - **状态定义**:确定动态规划的状态,...

    poj1088和1091

    在编写代码时,必须考虑如何有效地利用栈或队列的数据结构来记录路径,并在过程中不断比较以确保我们找到的是最长路径。 当视线转向POJ1091跳蚤时,我们仿佛嗅到了数学世界的芬芳。根据题目描述,"跳蚤"这个词似乎...

    北大POJ初级-计算几何学

    4. **多边形**:包括简单多边形和复杂多边形的定义,多边形的内角和、面积计算,以及多边形的旋转、平移、剪切等变换。 5. **向量和矩阵**:向量的加减乘运算、标量积和向量积,矩阵的乘法,以及它们在几何中的应用...

    西工大100题POJ12.rar

    例如,数组与矩阵的操作、链表与树的构建、栈与队列的应用、图的遍历算法,以及排序与搜索的实现等。通过解决这些题目,学生不仅能够熟悉各种数据结构和算法,还能提高逻辑思维和编程实践能力。 当提及“POJ12”时...

    POJ 1000 1003 1004 1005 1014 1017 1050 1080 1088

    可能涉及到简单的数学计算、字符串处理或基础数据类型的操作。 2. POJ 1003 - 1005: 随着编号的增加,难度逐渐提升,这些题目可能会涉及到更复杂的算法,比如排序、搜索或者递归。学习者需要对算法有基本理解,并能...

    图的深搜+回溯练习题:POJ2197

    标题中的“图的深搜+回溯练习题:POJ2197”是指一个编程题目,主要涉及图论中的深度优先搜索(DFS, Depth First Search)和回溯算法的应用。这个题目来源于在线编程竞赛平台POJ(Problem Online Judge),编号为2197...

    02.北大POJ题库使用指南.docx

    例如,霍夫曼编码和Prim算法都是贪心策略的应用。代表题目有1042、1065、1230等。 4. **图论**: 图论题目涵盖了最短路径(Dijkstra算法、Floyd算法)、最小生成树(Prim算法、Kruskal算法)以及网络流。例如,...

    Splay树题解1

    在处理大数据量时,由于Splay树的查找路径可能会很长,导致栈溢出,因此在C++编程时,需要设置较大的栈大小,例如使用`#pragma comment(linker, "/STACK:1024000000,1024000000")`来避免这个问题。 总的来说,Splay...

    西工大2014年C实验考试试题

    9. **算法和数据结构**:可能涉及到排序算法(如冒泡、选择、插入、快速、归并等)、查找算法(线性查找、二分查找等),以及简单的数据结构(如栈、队列、链表)。 10. **编程规范**:良好的编程风格,包括代码的...

    ACM新手入门练习题

    - **1005**:排序算法的简单应用,如选择排序或冒泡排序。 - **1006**:递归算法的基础应用,如计算斐波那契数列。 **2. 数据结构题目** - **1145**:涉及数组的应用题,如矩阵操作。 - **1177**:链表相关题目,...

    pojcodefor(1000-1099)

    9. **模拟与暴力求解**:对于某些题目,直接遍历所有可能的解法可能是最简单的实现方式,但需要注意优化避免超时。 10. **图论与网络流**:如最大流、最小割等,适用于解决分配、调度等问题。 通过这些源码,我们...

    DUTACM训练计划.doc

    栈和队列是两种特殊的线性表,它们在算法中有着广泛的应用,如括号匹配、递归算法的实现等,参赛者需要通过实际编程练习理解它们的基本操作和应用场景。 串(字符串)的学习也是一个重要环节。C语言中的字符串处理...

    ACM之路的计划

    * 动态规划进阶:完全背包、多重背包等各种背包问题、POJ 上完成一定数目的动态规划题目、状态压缩动态规划、树形动态规划 * 搜索:回溯法熟练应用、复杂的搜索题目练习、双向广度优先搜索、启发式搜索 通过系统化...

    acm程序设计竞赛深度搜索DFS实例

    由于压缩包中没有具体题目,你可以尝试将这些代码应用到POJ(Problemset Online Judge)或其他在线编程平台上找到的题目中,通过实践加深理解。在Ubuntu环境下运行这些代码,你需要确保你的系统已安装了编译器(如...

    挑战程序设计竞赛(第2版)

    1.6.1 先从简单题开始 1.6.2 POJ的题目Ants 1.6.3 难度增加的抽签问题 阅读 第2章 初出茅庐——初级篇 2.1 最基础的“穷竭搜索” 2.1.1 递归函数 2.1.2 栈 2.1.3 队列 2.1.4 深度优先搜索 2.1.5 宽度优先搜索 2.1.6...

Global site tag (gtag.js) - Google Analytics