diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-05-04 13:30:10 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-04 13:30:10 +0100 |
| commit | eef2ec3748987e5d70e61e0813211844c2913cc6 (patch) | |
| tree | 210429bac012fff47288a972ce59031240726eda | |
| parent | 7192bfc1553ec7fb60311e5c33f20606eb68936f (diff) | |
| parent | 14e3b6da0addb9254f60382d16a7662b9e27241a (diff) | |
| download | perlweeklychallenge-club-eef2ec3748987e5d70e61e0813211844c2913cc6.tar.gz perlweeklychallenge-club-eef2ec3748987e5d70e61e0813211844c2913cc6.tar.bz2 perlweeklychallenge-club-eef2ec3748987e5d70e61e0813211844c2913cc6.zip | |
Merge pull request #11967 from simongreen-net/master
sgreen solutions to challenge 319
| -rw-r--r-- | challenge-319/sgreen/README.md | 4 | ||||
| -rw-r--r-- | challenge-319/sgreen/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-319/sgreen/python/ch-1.py | 17 | ||||
| -rwxr-xr-x | challenge-319/sgreen/python/ch-2.py | 21 | ||||
| -rwxr-xr-x | challenge-319/sgreen/python/test.py | 22 |
5 files changed, 63 insertions, 2 deletions
diff --git a/challenge-319/sgreen/README.md b/challenge-319/sgreen/README.md index df76bedbff..2be75d9b36 100644 --- a/challenge-319/sgreen/README.md +++ b/challenge-319/sgreen/README.md @@ -1,3 +1,3 @@ -# The Weekly Challenge 318 +# The Weekly Challenge 319 -Blog: [Reverse Positions](https://dev.to/simongreennet/weekly-challenge-reverse-positions-3om3) +Blog: [Words and numbers](https://dev.to/simongreennet/words-and-numbers-54k6) diff --git a/challenge-319/sgreen/blog.txt b/challenge-319/sgreen/blog.txt new file mode 100644 index 0000000000..6179a8e827 --- /dev/null +++ b/challenge-319/sgreen/blog.txt @@ -0,0 +1 @@ +https://dev.to/simongreennet/words-and-numbers-54k6
\ No newline at end of file diff --git a/challenge-319/sgreen/python/ch-1.py b/challenge-319/sgreen/python/ch-1.py new file mode 100755 index 0000000000..f76b60e6e5 --- /dev/null +++ b/challenge-319/sgreen/python/ch-1.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import re +import sys + + +def word_count(words: list[str]) -> int: + return sum(1 for word in words if re.search('^[aeiou]', word) or re.search('[aeiou]$', word)) + + +def main(): + result = word_count(sys.argv[1:]) + print(result) + + +if __name__ == '__main__': + main() diff --git a/challenge-319/sgreen/python/ch-2.py b/challenge-319/sgreen/python/ch-2.py new file mode 100755 index 0000000000..8c0127500c --- /dev/null +++ b/challenge-319/sgreen/python/ch-2.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 + +import re +import sys + + +def minimum_common(list1: list[int], list2: list[int]) -> int: + intersection = set(list1) & set(list2) + return min(intersection) if intersection else -1 + + +def main(): + # Convert input into integers + list1 = map(int, re.split(r'\D+', sys.argv[1])) + list2 = map(int, re.split(r'\D+', sys.argv[2])) + result = minimum_common(list1, list2) + print(result) + + +if __name__ == '__main__': + main() diff --git a/challenge-319/sgreen/python/test.py b/challenge-319/sgreen/python/test.py new file mode 100755 index 0000000000..7a15abb379 --- /dev/null +++ b/challenge-319/sgreen/python/test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 + +import unittest +ch_1 = __import__('ch-1') +ch_2 = __import__('ch-2') + + +class TestClass(unittest.TestCase): + def test_ch_1(self): + self.assertEqual(ch_1.word_count( + ["unicode", "xml", "raku", "perl"]), 2) + self.assertEqual(ch_1.word_count(["the", "weekly", "challenge"]), 2) + self.assertEqual(ch_1.word_count(["perl", "python", "postgres"]), 0) + + def test_ch_2(self): + self.assertEqual(ch_2.minimum_common([1, 2, 3, 4], [3, 4, 5, 6]), 3) + self.assertEqual(ch_2.minimum_common([1, 2, 3], [2, 4]), 2) + self.assertEqual(ch_2.minimum_common([1, 2, 3, 4], [5, 6, 7, 8]), -1) + + +if __name__ == '__main__': + unittest.main() |
