aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-250/pokgopun/python/ch-1.py64
-rw-r--r--challenge-250/pokgopun/python/ch-2.py60
2 files changed, 124 insertions, 0 deletions
diff --git a/challenge-250/pokgopun/python/ch-1.py b/challenge-250/pokgopun/python/ch-1.py
new file mode 100644
index 0000000000..b1450390ef
--- /dev/null
+++ b/challenge-250/pokgopun/python/ch-1.py
@@ -0,0 +1,64 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-250/
+"""
+
+Task 1: Smallest Index
+
+Submitted by: [38]Mohammad S Anwar
+ __________________________________________________________________
+
+ You are given an array of integers, @ints.
+
+ Write a script to find the smallest index i such that i mod 10 ==
+ $ints[i] otherwise return -1.
+
+Example 1
+
+Input: @ints = (0, 1, 2)
+Output: 0
+
+i=0: 0 mod 10 = 0 == $ints[0].
+i=1: 1 mod 10 = 1 == $ints[1].
+i=2: 2 mod 10 = 2 == $ints[2].
+All indices have i mod 10 == $ints[i], so we return the smallest index 0.
+
+Example 2
+
+Input: @ints = (4, 3, 2, 1)
+Output: 2
+
+i=0: 0 mod 10 = 0 != $ints[0].
+i=1: 1 mod 10 = 1 != $ints[1].
+i=2: 2 mod 10 = 2 == $ints[2].
+i=3: 3 mod 10 = 3 != $ints[3].
+2 is the only index which has i mod 10 == $ints[i].
+
+Example 3
+
+Input: @ints = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
+Output: -1
+Explanation: No index satisfies i mod 10 == $ints[i].
+
+Task 2: Alphanumeric String Value
+"""
+### solution by pokgopun@gmail.com
+
+def smallestIndex(tup: tuple):
+ for i in range(len(tup)):
+ if i % 10 == tup[i]:
+ return i
+ return -1
+
+import unittest
+
+class TestSmallestIndex(unittest.TestCase):
+ def test1(self):
+ for inpt,otpt in {
+ (0, 1, 2): 0,
+ (4, 3, 2, 1): 2,
+ (1, 2, 3, 4, 5, 6, 7, 8, 9, 0): -1,
+ }.items():
+ self.assertEqual(smallestIndex(inpt),otpt)
+
+unittest.main()
+
+
diff --git a/challenge-250/pokgopun/python/ch-2.py b/challenge-250/pokgopun/python/ch-2.py
new file mode 100644
index 0000000000..eaaba8cab1
--- /dev/null
+++ b/challenge-250/pokgopun/python/ch-2.py
@@ -0,0 +1,60 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-250/
+"""
+
+Task 2: Alphanumeric String Value
+
+Submitted by: [39]Mohammad S Anwar
+ __________________________________________________________________
+
+ You are given an array of alphanumeric strings.
+
+ Write a script to return the maximum value of alphanumeric string in
+ the given array.
+
+ The value of alphanumeric string can be defined as
+a) The numeric representation of the string in base 10 if it is made up of digit
+s only.
+b) otherwise the length of the string
+
+Example 1
+
+Input: @alphanumstr = ("perl", "2", "000", "python", "r4ku")
+Output: 6
+
+"perl" consists of letters only so the value is 4.
+"2" is digits only so the value is 2.
+"000" is digits only so the value is 0.
+"python" consits of letters so the value is 6.
+"r4ku" consists of letters and digits so the value is 4.
+
+Example 2
+
+Input: @alphanumstr = ("001", "1", "000", "0001")
+Output: 1
+ __________________________________________________________________
+
+ Last date to submit the solution 23:59 (UK Time) Sunday 7th January
+ 2024.
+ __________________________________________________________________
+
+SO WHAT DO YOU THINK ?
+"""
+### solution by pokgopun@gmail.com
+
+def alphanumericStringValue(tup: tuple):
+ return max(
+ int(e) if e.isnumeric() else len(e) for e in tup
+ )
+
+import unittest
+
+class TestAlphanumericStringValue(unittest.TestCase):
+ def test(self):
+ for inpt,otpt in {
+ ("perl", "2", "000", "python", "r4ku"): 6,
+ ("001", "1", "000", "0001"): 1,
+ }.items():
+ self.assertEqual(alphanumericStringValue(inpt),otpt)
+
+unittest.main()
+