diff options
| -rw-r--r-- | challenge-250/pokgopun/python/ch-1.py | 64 | ||||
| -rw-r--r-- | challenge-250/pokgopun/python/ch-2.py | 60 |
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() + |
