aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaulo Custodio <pauloscustodio@gmail.com>2024-09-05 15:23:50 +0100
committerPaulo Custodio <pauloscustodio@gmail.com>2024-09-05 16:17:55 +0100
commitf10dac9c38d04b762a0ce20fb1be160fd0d9b02c (patch)
tree263e795c93469ab61bed78b0e89720afbf304e7a
parentf954b76daf066bbe93d1dc1c11cd56b99b0e37e9 (diff)
downloadperlweeklychallenge-club-f10dac9c38d04b762a0ce20fb1be160fd0d9b02c.tar.gz
perlweeklychallenge-club-f10dac9c38d04b762a0ce20fb1be160fd0d9b02c.tar.bz2
perlweeklychallenge-club-f10dac9c38d04b762a0ce20fb1be160fd0d9b02c.zip
Add Python solution to challenge 283
-rw-r--r--challenge-283/paulo-custodio/perl/ch-1.pl3
-rw-r--r--challenge-283/paulo-custodio/python/ch-1.py45
-rw-r--r--challenge-283/paulo-custodio/python/ch-2.py49
3 files changed, 96 insertions, 1 deletions
diff --git a/challenge-283/paulo-custodio/perl/ch-1.pl b/challenge-283/paulo-custodio/perl/ch-1.pl
index a1d4008c9c..13b0aab2a5 100644
--- a/challenge-283/paulo-custodio/perl/ch-1.pl
+++ b/challenge-283/paulo-custodio/perl/ch-1.pl
@@ -5,7 +5,8 @@
# Task 1: Unique Number
# Submitted by: Mohammad Sajid Anwar
#
-# You are given an array of integers, @ints, where every elements appears more than once except one element.
+# You are given an array of integers, @ints, where every elements appears more
+# than once except one element.
#
# Write a script to find the one element that appears exactly one time.
# Example 1
diff --git a/challenge-283/paulo-custodio/python/ch-1.py b/challenge-283/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..2cedb20d5d
--- /dev/null
+++ b/challenge-283/paulo-custodio/python/ch-1.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python3
+
+# Challenge 283
+#
+# Task 1: Unique Number
+# Submitted by: Mohammad Sajid Anwar
+#
+# You are given an array of integers, @ints, where every elements appears more
+# than once except one element.
+#
+# Write a script to find the one element that appears exactly one time.
+# Example 1
+#
+# Input: @ints = (3, 3, 1)
+# Output: 1
+#
+# Example 2
+#
+# Input: @ints = (3, 2, 4, 2, 4)
+# Output: 3
+#
+# Example 3
+#
+# Input: @ints = (1)
+# Output: 1
+#
+# Example 4
+#
+# Input: @ints = (4, 3, 1, 1, 1, 4)
+# Output: 3
+
+import sys
+
+ints = [int(x) for x in sys.argv[1:]]
+count = {}
+for x in ints:
+ if x in count:
+ count[x] += 1
+ else:
+ count[x] = 1
+unique = list(filter(lambda x:count[x]==1, ints))
+if len(unique) == 0:
+ print(-1)
+else:
+ print(unique[0])
diff --git a/challenge-283/paulo-custodio/python/ch-2.py b/challenge-283/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..f325700e3b
--- /dev/null
+++ b/challenge-283/paulo-custodio/python/ch-2.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+
+# Challenge 283
+#
+# Task 2: Digit Count Value
+# Submitted by: Mohammad Sajid Anwar
+#
+# You are given an array of positive integers, @ints.
+#
+# Write a script to return true if for every index i in the range 0 <= i < size
+# of array, the digit i occurs exactly the $ints[$i] times in the given array
+# otherwise return false.
+# Example 1
+#
+# Input: @ints = (1, 2, 1, 0)
+# Ouput: true
+#
+# $ints[0] = 1, the digit 0 occurs exactly 1 time.
+# $ints[1] = 2, the digit 1 occurs exactly 2 times.
+# $ints[2] = 1, the digit 2 occurs exactly 1 time.
+# $ints[3] = 0, the digit 3 occurs 0 time.
+#
+# Example 2
+#
+# Input: @ints = (0, 3, 0)
+# Ouput: false
+#
+# $ints[0] = 0, the digit 0 occurs 2 times rather than 0 time.
+# $ints[1] = 3, the digit 1 occurs 0 time rather than 3 times.
+# $ints[2] = 0, the digit 2 occurs exactly 0 time.
+
+import sys
+
+def digit_count_true(ints):
+ count = {}
+ for i in range(len(ints)):
+ count[i] = 0
+ for x in ints:
+ if x in count:
+ count[x] += 1
+ else:
+ count[x] = 1
+ for i in range(len(ints)):
+ if count[i] != ints[i]:
+ return False
+ return True
+
+ints = [int(x) for x in sys.argv[1:]]
+print('true' if digit_count_true(ints) else 'false')