题目描述

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 a_iai​(长度不一定,以 00 结束),记住了然后反着念出来(表示结束的数字 00 就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。

输入格式

一行内输入一串整数,以 00 结束,以空格间隔。

输出格式

一行内倒着输出这一串整数,以空格间隔。

输入输出样例

输入 #1复制

3 65 23 5 34 1 30 0

输出 #1复制

30 1 34 5 23 65 3

来自 <https://www.luogu.com.cn/problem/P1427?contestId=46635>

题目大意:倒序输出

1,可以反转数组,然后输出

这个相对简单,不在这里细讲

2,利用栈先进后出(后进先出的原理),这是我们今天主要讲的方法

首先了解下栈的概念:

(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

简单说就像一个杯子,它是一个单端的结构,先入后出,后入先出,只要把杯顶的东西倒出来,杯底的才能拿出

栈常用的几个方法:

*stack.empty()判断是否为空

*stack.peek()取栈顶的值(不出栈)

*stack.push()进栈

*stack.pop()出栈

接下来放下源码,这个题就是进栈和出栈的一个简单过程

结合代码看看大致即可了解

//JAVA版:
import java.io.*;
public class 小鱼的数字游戏 {public static void main(String[] args) throws IOException {StreamTokenizer r = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));PrintWriter pr = new PrintWriter(new OutputStreamWriter(System.out));//这个我们用的是一个快输体java.util.Stack stack = new java.util.Stack();boolean flag = true;while (flag) {r.nextToken();//识别换行的作用int temp = (int) r.nval;//输入数据if (temp == 0) {break;} else {stack.push(temp);//入栈}}int length = stack.size();for (int i = 0; i < length; i++) {if (i != length - 1) {pr.print(stack.pop() + " ");//出栈pr.flush();} else {pr.print(stack.pop());pr.flush();}}}
}

最后我们来看看顺序栈与链式栈中各个操作的算法复杂度(时间和空间)对比,

顺序栈复杂度如下:

操作                                                               时间复杂度
SeqStack空间复杂度(用于N次push)                O(n)
push()时间复杂度                                             O(1)
pop()时间复杂度                                               O(1)
peek()时间复杂度                                             O(1)
isEmpty()时间复杂度                                        O(1)

链式栈复杂度如下:

操作                                                               时间复杂度
SeqStack空间复杂度创建(用于N次push)           O(n)
push()时间复杂度                                               O(1)
pop()时间复杂度                                                 O(1)
peek()时间复杂度                                               O(1)
isEmpty()时间复杂度                                          O(1)
由此可知栈的主要操作都可以在常数时间内完成,这主要是因为栈只对一端进行操作,而且操作的只是栈顶元素。

栈的特性可以运用到许多的地方,后续我们会继续探究......

P1427 小鱼的数字游戏——栈的初次会面相关推荐

  1. 洛谷——P1427 小鱼的数字游戏

    P1427 小鱼的数字游戏 题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 a_ia**i(长度不一定,以 00 结束),记住了然后反着念出来(表示结束的数字 00 就不要念出来了) ...

  2. 洛谷[P1427]小鱼的数字游戏

    题目传送门OvO 题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过 2 32 − 1 2^{32}-1 232−1),记住了然后反 ...

  3. P1427 小鱼的数字游戏(洛谷)

    本文转自某洛谷神牛,一道水题竟然能想出如此多的做法,佩服 题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然 ...

  4. 数组——洛谷#P1427 小鱼的数字游戏(Python实现)

    题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了).这对小鱼的 ...

  5. P1427 小鱼的数字游戏

    题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 a_i(长度不一定,以 0 结束),记住了然后反着念出来(表示结束的数字 0 就不要念出来了).这对小鱼的那点记忆力来说实在是太难了, ...

  6. luogu P1427 小鱼的数字游戏

    传送门 今天是2019.5.27 距离NOIP2019还有165天 今天起手先刷一道大水题练手感 题目很简单 正序输入倒序输出 没个数 然而我一开始把它想成了一道字符串的题 后来发现多位数会颠倒数位 ...

  7. 洛谷P1427 小鱼的数字游戏c语言

    今天搞道_(:з」∠)_水题 #include<stdio.h> int main() {int i,j;int a[100]={0};int c=0;for(i=0;;i++){ sca ...

  8. p1427小鱼的数字游戏

    解题思路: 1.创建一个int类型的数组a 2.创建变量x,num   num=0 3.每次输入一个数,如果这个数等于0的话,中断循环 4.下标的书签,将x存入数组中 5.输出a"   &q ...

  9. 洛谷P1427小鱼的数字游戏(JAVA)

    题目如图 解法1: import java.util.Scanner;public class Main {public static void main(String[] args) {Scanne ...

  10. 洛谷(小鱼的数字游戏、进制转换、Cableway、Quasi Binary)

    小鱼的数字游戏: 代码: #include<iostream> #include<cstring> #include<algorithm> using namesp ...

最新文章

  1. [Matlab] 线性卷积圆周卷积代码实现
  2. UA MATH566 统计理论8 置信区间简介
  3. java集合框架介绍_Java集合框架介绍
  4. Socket.IO聊天室~简单实用
  5. 各自然带代表植被_必备知识:植被与地理环境
  6. Java 11就在这里,您准备好进行切换了吗?
  7. 主进程中发生javascript错误_你知道 JavaScript 中的错误对象有哪些类型吗?
  8. 迷宫问题(信息学奥赛一本通-T1255)
  9. 路由器与计算机IP配置,电脑的IP地址和DNS等参数如何设置
  10. java中scort意思_java入门—笔记
  11. 复选框式查询 例题租房子
  12. flask从表单中的提交中获取数据(不使用第三方库)
  13. SPSS论证有这样的问题或错误?【SPSS 068期】
  14. java文件传输加密_java程序对于文件的加密和解密
  15. 【时间之外】金融数据中心机房应对监管(最新出炉)
  16. HBase Coprocessor实现HBase二级索引
  17. 【STM32】TCL2543CN 12位11通道ADC芯片stm驱动程序,使用32自带SPI实现
  18. oppo手机怎么关闭Android,OPPO手机必须关闭的3个设置,让你的手机永不卡顿,再用3年...
  19. 蛋蛋读UFS之二:UFS协议栈
  20. Hyper-V 2016 系列教程33 学习型服务器推荐

热门文章

  1. 下载Idea以及破解使用至2100年
  2. PhalApi 如何请求接口服务
  3. 用PS做的一个个人logo
  4. 如何从初级程序员变成高级程序员?
  5. error LNK2019 无法解析的外部符号 __imp__accept@12
  6. 用无线局域网设置服务器,无线局域网如何配置
  7. 计算机网络与Internet发展历史
  8. 使用 PHPMailer 配合 QQ邮箱 发送邮件
  9. 《实况足球10》全套数值能力解析
  10. 2021信息管理与信息系统专业保研(情报学|管理科学与工程)