Shuffle the array
This post is part of the Algorithms Problem Solving series.
Problem description
This is the Shuffle the array problem. The description looks like this:
Given the array nums
consisting
of 2n
elements in the
form [x1,x2,...,xn,y1,y2,...,yn]
.
Return the array in the form [x1,y1,x2,y2,...,xn,yn]
.
Examples
Input: nums = [2,5,1,3,4,7], n = 3
Output: [2,3,5,4,1,7]
Input: nums = [1,2,3,4,4,3,2,1], n = 4
Output: [1,4,2,3,3,2,4,1]
Input: nums = [1,1,2,2], n = 2
Output: [1,2,1,2]
Solution
The idea of my solution was to get the first and the last half of the
nums
list. Then iterate through the lists and append one
by one.
def shuffle(nums, n):
first_half = nums[:n]
last_half = nums[n:]
final_list = []
for index in range(len(first_half)):
final_list.append(first_half[index])
final_list.append(last_half[index])
return final_list
We could also iterate through the lists simultaneously by using the
zip
function. And append the items in one call, instead
of two lines:
def shuffle(nums, n):
first_half = nums[:n]
last_half = nums[n:]
final_list = []
for first, last in zip(first_half, last_half):
final_list.extend((first, last))
return final_list
Resources
- Learning Python: From Zero to Hero
- Algorithms Problem Solving Series
- Stack Data Structure
- Queue Data Structure
- Linked List
- Tree Data Structure
Have fun, keep learning, and always keep coding!