aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-05-04 13:30:10 +0100
committerGitHub <noreply@github.com>2025-05-04 13:30:10 +0100
commiteef2ec3748987e5d70e61e0813211844c2913cc6 (patch)
tree210429bac012fff47288a972ce59031240726eda
parent7192bfc1553ec7fb60311e5c33f20606eb68936f (diff)
parent14e3b6da0addb9254f60382d16a7662b9e27241a (diff)
downloadperlweeklychallenge-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.md4
-rw-r--r--challenge-319/sgreen/blog.txt1
-rwxr-xr-xchallenge-319/sgreen/python/ch-1.py17
-rwxr-xr-xchallenge-319/sgreen/python/ch-2.py21
-rwxr-xr-xchallenge-319/sgreen/python/test.py22
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()