洛谷题单4-P1427 小鱼的数字游戏-python-流程图

题目描述

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

输入格式

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

输出格式

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

输入输出样例

输入

3 65 23 5 34 1 30 0

输出

30 1 34 5 23 65 3

说明/提示

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 0 ≤ a i ≤ 2 31 − 1 0 \leq a_i \leq 2^{31} - 1 0ai2311,数字个数不超过 100 100 100

方式-直接反转

代码

def oi_input():
    nums = list(map(int, input().split()))
    return nums

def oi_test():
    return [3, 65, 23, 5, 34, 1, 30, 0]

def solution(nums):
    '''注意:题意应该是不止一个零的,但是测试点里面没有'''
    nums = nums[:-1]
    print(' '.join(map(str, reversed(nums))))

if __name__ == '__main__':
    nums = oi_test()
    # prime_nums = oi_input()
    solution(nums)

流程图

开始
调用oi_test()
获取nums=[3,65,23,5,34,1,30,0]
nums = nums[:-1] (移除最后一个0)
reversed(nums) 反转列表
用空格连接转换为字符串
打印结果
结束

方式-模拟栈

代码

def oi_input():
    nums = list(map(int, input().split()))
    return nums

def oi_test():
    return [3, 65, 23, 5, 34, 1, 30, 0]

def solution(nums):
    '''
    数组模拟栈
    注意:题意应该是不止一个零的,但是测试点里面没有
    '''
    nums, stack = nums[:-1], []
    for i in nums:
        stack.append(i)
    while stack:
        print(stack.pop(), end=" ")

if __name__ == '__main__':
    nums = oi_test()
    # prime_nums = oi_input()
    solution(nums)

流程图

循环结束
栈空
开始
调用oi_test()
获取nums=[3,65,23,5,34,1,30,0]
nums = nums[:-1] (移除最后一个0)
初始化空栈stack=[]
循环遍历nums中每个元素i
stack.append(i)
while stack不为空
print(stack.pop(), end=' ')
结束

你可能感兴趣的:(LuoGu-python,python,算法,开发语言)