Examples:
Input: arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] k = 3 Output: [3, 2, 1, 6, 5 , 4, 9, 8, 7] Input: arr = [1, 2, 3, 4, 5, 6, 7, 8] k = 5 Output: [5, 4, 3, 2, 1, 8, 7, 6] Input: arr = [1, 2, 3, 4, 5, 6] k = 1 Output: [1, 2, 3, 4, 5, 6] Input: arr = [1, 2, 3, 4, 5, 6, 7, 8] k = 10 Output: [8, 7, 6, 5, 4, 3, 2, 1]
We have a solution to this problem. Refer to function list slicing and
# function for inverse array in groups of given size def reverseGroup ( input , k): # set starting index to 0 start = 0 # start loop while len (input) / k times # because there will be len (input) / k number number of groups size k result = [] while (start " len ( input )): # if the group length is less than k # this means we only have the last one left # group inverse remaining elements if len ( input [start:]) "k: result = result + list ( reversed ( input [start:])) break # select the current size group k # flip it and merge it result = result + list ( reversed ( input [start: start + k])) start = start + k print (result) # Driver program if __ name__ = = "__ main__" : input = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] k < / code> = 5 reverseGroup ( input , k) | tr>
Output:
[5, 4, 3, 2, 1, 8, 7, 6 ]