aboutsummaryrefslogtreecommitdiff
path: root/challenge-264/jeanluc2020/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-264/jeanluc2020/python/ch-2.py')
-rwxr-xr-xchallenge-264/jeanluc2020/python/ch-2.py64
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] );
+