aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Manring <michael@manring>2024-04-10 11:41:07 +1000
committerMichael Manring <michael@manring>2024-04-10 11:41:07 +1000
commitba0287822135b4d4c868e8f8ede74622843c6c85 (patch)
tree4c3d5040361bcb0cb413e61e92c7eb944904d0ff
parent5991138e306a72597a1609d1cc2e41da6369c93a (diff)
downloadperlweeklychallenge-club-ba0287822135b4d4c868e8f8ede74622843c6c85.tar.gz
perlweeklychallenge-club-ba0287822135b4d4c868e8f8ede74622843c6c85.tar.bz2
perlweeklychallenge-club-ba0287822135b4d4c868e8f8ede74622843c6c85.zip
pwc264 solution in python
-rw-r--r--challenge-264/pokgopun/python/ch-1.py57
-rw-r--r--challenge-264/pokgopun/python/ch-2.py73
2 files changed, 130 insertions, 0 deletions
diff --git a/challenge-264/pokgopun/python/ch-1.py b/challenge-264/pokgopun/python/ch-1.py
new file mode 100644
index 0000000000..2969fd1bd8
--- /dev/null
+++ b/challenge-264/pokgopun/python/ch-1.py
@@ -0,0 +1,57 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-264/
+"""
+
+Task 1: Greatest English Letter
+
+Submitted by: [47]Mohammad Sajid Anwar
+ __________________________________________________________________
+
+ You are given a string, $str, made up of only alphabetic characters
+ [a..zA..Z].
+
+ Write a script to return the greatest english letter in the given
+ string.
+
+ A letter is greatest if it occurs as lower and upper case. Also
+ letter ‘b’ is greater than ‘a’ if ‘b’ appears after ‘a’ in the
+ English alphabet.
+
+Example 1
+
+Input: $str = 'PeRlwEeKLy'
+Output: L
+
+There are two letters E and L that appears as lower and upper.
+The letter L appears after E, so the L is the greatest english letter.
+
+Example 2
+
+Input: $str = 'ChaLlenge'
+Output: L
+
+Example 3
+
+Input: $str = 'The'
+Output: ''
+
+Task 2: Target Array
+"""
+### solution by pokgopun@gmail.com
+
+def gel(word: str):
+ word = word.upper() + chr(0)*2
+ c = max(e for e in set(word) if word.count(e) > 1)
+ return "" if c==chr(0) else c
+
+import unittest
+
+class TestGel(unittest.TestCase):
+ def test(self):
+ for inpt,otpt in {
+ 'PeRlwEeKLy': "L",
+ 'ChaLlenge': "L",
+ 'The': ''
+ }.items():
+ self.assertEqual(gel(inpt),otpt)
+
+unittest.main()
diff --git a/challenge-264/pokgopun/python/ch-2.py b/challenge-264/pokgopun/python/ch-2.py
new file mode 100644
index 0000000000..5829642ca4
--- /dev/null
+++ b/challenge-264/pokgopun/python/ch-2.py
@@ -0,0 +1,73 @@
+### https://theweeklychallenge.org/blog/perl-weekly-challenge-264/
+"""
+
+Task 2: Target Array
+
+Submitted by: [48]Mohammad Sajid Anwar
+ __________________________________________________________________
+
+ 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)
+ __________________________________________________________________
+
+ Last date to submit the solution 23:59 (UK Time) Sunday 14th April
+ 2024.
+ __________________________________________________________________
+
+SO WHAT DO YOU THINK ?
+"""
+### solution by pokgopun@gmail.com
+
+def target(source,indices):
+ result = list()
+ for i in range(len(source)):
+ result.insert(indices[i],source[i])
+ return tuple(result)
+
+import unittest
+
+class TestTarget(unittest.TestCase):
+ def test(self):
+ for (source,indices), result in {
+ ((0, 1, 2, 3, 4), (0, 1, 2, 2, 1)): (0, 4, 1, 3, 2),
+ ((1, 2, 3, 4, 0), (0, 1, 2, 3, 0)): (0, 1, 2, 3, 4),
+ ((1,), (0,)): (1,),
+ }.items():
+ self.assertEqual(target(source,indices),result)
+
+unittest.main()