程序代码:
'''
轮转数组:
给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。
输入数组和轮转次数,用空格分隔开来。
'''
'''
示例:
输入: 输出:
[1, 2, 3, 4, 5, 6], 3 [1, 2, 3, 4, 5, 6]
'''
def process_input():
nums, k = input().rsplit(',', 1)
nums = eval(nums.strip())
k = int(k.strip()) % len(nums)
return nums, k
'''方法一:insert() + pop()'''
def lunzhaun1(nums, k):
"""
实现一个数组的轮转函数,将数组向右轮转k次。
参数:
nums: 字符串类型,表示待轮转的数组,需要通过eval转换为列表。
k: 整数类型,表示轮转的次数。
返回:
无返回值,直接打印轮转后的数组。
"""
for i in range(k):
nums.insert(0, nums.pop())
print(nums)
'''方法二:列表切片'''
def lunzhuan2(nums, k):
"""
与第一个函数的参数,作用几乎一样。
"""
nums = nums[-k:] + nums[:-k]
print(nums)
'''测试函数'''
if __name__ == '__main__':
'''
输入:
[1, 2, 3, 4, 5, 6], 3
'''
nums, k = process_input()
lunzhaun1(nums, k)