资料结构_数组元素循环右移

题目

Input : 第一行输入 N(1≤N≤100)、M(≥0),以空格隔开Input : 第二行输入N个整数,以空格隔开Output : 将N个整数循环右移M位输出,元素间以空格隔开,结尾不可有空格Example:
Input : 3 1
Input : 1 2 3
Output : 2 3 1

第一版,(大错特错)

空list时,不能指定特定Index值(list[1] = 1) @@
sInput1 = input()sInput2 = input()i_num = int(sInput1.split()[0])i_move = int(sInput1.split()[-1])lst = sInput2.split()lst_rtn = []for i in range(i_num):    print(i,lst[i],(i+i_move)%i_num)    lst_rtn[(i+i_move)%i_num] = lst[i]print(lst)print(lst_rtn)

执行

6 2 #Input1 2 3 4 5 6 #InputTraceback (most recent call last):  File "D:move.py", line 8, in <module>    lst_rtn[(i+i_move)%i_num] = lst[i]IndexError: list assignment index out of range

第二版,照顺序append进list()

先找出右移后Index=0的那个值再从那个值开始一个一个append进list()
sInput1 = input()sInput2 = input()i_num = int(sInput1.split()[0])i_move = int(sInput1.split()[-1])lst = sInput2.split()lst_rtn = []str = ''#iIndex = i_num - i_move + (i_num * int(i_move/i_num))iIndex = i_num * (int(i_move/i_num) + 1) - i_movefor i in range(i_num):    #lst_rtn.append(lst[iIndex % i_num])    str += lst[iIndex % i_num] + ' '    iIndex +=1print(str.rstrip())#print(lst)#print(lst_rtn)

本文纯自己做题目之笔记,如有更好的方法再麻烦各位指教~~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章