1007 数组元素循环右移问题 (20分)Python参考答案
1008.png

输入格式:
每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。

输出格式:
在一行中输出循环右移M位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。

输入样例:
6 2
1 2 3 4 5 6

输出样例:
5 6 1 2 3 4

答案解析:
我们首先分析下这个题,输入了n代表了我们将要操控的列表的长度,所以我们要限制我们的列表长度不能超过n。移动m位,那么我们可以采用python里面的切片,这时候,小编就写完了,也提交了,结果没有满分,后来分析了下,m有可能大于n,切片的时候,以m为中间,那么有问题,就改造了下,我们一起来看下代码吧。

#!/usr/bin/python
s = raw_input()
s_list = s.split(" ")
n = int(s_list[0])
m = int(s_list[1])

s = raw_input()
s_list = s.split(" ")
if m>n:
    m -= n
a = []
for i in s_list[0: n]:
    a.append(str(i))
print(" ".join(a[-m:]+a[:-m]))
Last modification:January 15th, 2020 at 06:30 pm
If you think my article is useful to you, please feel free to appreciate