diff options
Diffstat (limited to 'challenge-264/jeanluc2020/python/ch-2.py')
| -rwxr-xr-x | challenge-264/jeanluc2020/python/ch-2.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/challenge-264/jeanluc2020/python/ch-2.py b/challenge-264/jeanluc2020/python/ch-2.py new file mode 100755 index 0000000000..0d8c2928cf --- /dev/null +++ b/challenge-264/jeanluc2020/python/ch-2.py @@ -0,0 +1,64 @@ +#!/usr/bin/python3 +# https://theweeklychallenge.org/blog/perl-weekly-challenge-264/#TASK2 +# +# Task 2: Target Array +# ==================== +# +# You are given two arrays of integers, @source and @indices. The @indices can +# only contains integers 0 <= i < size of @source. +# +# Write a script to create target array by insert at index $indices[i] the +# value $source[i]. +# +## Example 1 +## +## Input: @source = (0, 1, 2, 3, 4) +## @indices = (0, 1, 2, 2, 1) +## Output: (0, 4, 1, 3, 2) +## +## @source @indices @target +## 0 0 (0) +## 1 1 (0, 1) +## 2 2 (0, 1, 2) +## 3 2 (0, 1, 3, 2) +## 4 1 (0, 4, 1, 3, 2) +# +## Example 2 +## +## Input: @source = (1, 2, 3, 4, 0) +## @indices = (0, 1, 2, 3, 0) +## Output: (0, 1, 2, 3, 4) +## +## @source @indices @target +## 1 0 (1) +## 2 1 (1, 2) +## 3 2 (1, 2, 3) +## 4 3 (1, 2, 3, 4) +## 0 0 (0, 1, 2, 3, 4) +# +## Example 3 +## +## Input: @source = (1) +## @indices = (0) +## Output: (1) +# +############################################################ +## +## discussion +## +############################################################ +# +# Walk the arrays in parallel using an index $i; insert +# source[i] at the index indices[i] in the target array + +def target_array(source: list, indices: list) -> None: + print("Input: (", ", ".join([str(x) for x in source]), "), (", ", ".join([str(x) for x in indices]), ")", sep="") + target = [] + for i in range(len(indices)): + target.insert(indices[i], source[i]) + print("Output: (", ", ".join([str(x) for x in target]), ")", sep="") + +target_array( [0, 1, 2, 3, 4], [0, 1, 2, 2, 1] ); +target_array( [1, 2, 3, 4, 0], [0, 1, 2, 3, 0] ); +target_array( [1], [0] ); + |
