aboutsummaryrefslogtreecommitdiff
path: root/challenge-249/e-choroba/python/ch-1.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-249/e-choroba/python/ch-1.py')
-rwxr-xr-xchallenge-249/e-choroba/python/ch-1.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-249/e-choroba/python/ch-1.py b/challenge-249/e-choroba/python/ch-1.py
new file mode 100755
index 0000000000..8804c18a26
--- /dev/null
+++ b/challenge-249/e-choroba/python/ch-1.py
@@ -0,0 +1,20 @@
+#! /usr/bin/python3
+from collections import Counter
+
+def equal_pairs(*ints):
+ seen = Counter(ints)
+ pairs = []
+ for c in seen:
+ if seen[c] % 2 == 1:
+ return []
+ else:
+ pairs += map(lambda _i: [c, c], range(seen[c] // 2))
+ return pairs
+
+assert equal_pairs(3, 2, 3, 2, 2, 2) == [[3, 3], [2, 2], [2, 2]], 'Example 1'
+assert equal_pairs(1, 2, 3, 4) == [], 'Example 2'
+assert equal_pairs(-1, -1, -2, -2) == [[-1, -1], [-2, -2]], 'Negative numbers'
+assert equal_pairs(1, 1, 1, 1, 2, 2, 2, 2) == [
+ [1, 1], [1, 1], [2, 2], [2, 2]], \
+ 'More than once'
+assert equal_pairs(1, 1, 1, 1, 2, 2, 2, 2, 1) == [], 'More than once odd';