牛客编程题----操作序列(python)

一、题目

题目描述

小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:
1、将a_i放入b序列的末尾
2、逆置b序列
小易需要你计算输出操作n次之后的b序列。

输入描述:

输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。
第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。

输出描述:

在一行中输出操作n次之后的b序列,以空格分割,行末无空格。

示例1

输入

4
1 2 3 4

输出

4 2 1 3

二、分析及代码

    题意:给一个数组,从数组的第一个元素开始,第i次将数组的第i个元素放入b数组的末尾并反转,输出n次后的b数组,n是给出的数组的元素个数。

   分析:我刚开始做的时候直接按正常的思路,没加一次,置换一次,这样的复杂度是n^2, 提交的时候发现只能通过50%的case,超时了,最后在本子上写了一下发现了一个规律,不好用语言描述,直接上代码吧,很简单,代码如下:

n = int(input())
s = [int(x) for x in input().split()]
for i in range(n, 0, -2):
    print(s[i-1], end=' ')
for i in range(1 + n%2, n, 2):
    print(s[i-1], end=' ')

猜你喜欢

转载自blog.csdn.net/zpf123456789zpf/article/details/88353368
今日推荐