aboutsummaryrefslogtreecommitdiff
path: root/challenge-254/sgreen/python
diff options
context:
space:
mode:
authorrir <rirans@comcast.net>2024-02-03 21:04:52 -0500
committerGitHub <noreply@github.com>2024-02-03 21:04:52 -0500
commita3f78f2b0fec122fe2272e1bbe1febbebac4fc36 (patch)
treeefc9f25b23d90907e8ca7d32eae5e90477665019 /challenge-254/sgreen/python
parent7b687542caa8eae5659709a8ca6e63779d9b5197 (diff)
parent246fff16e6e480b6e2c031b92b46c52d3e5ce0df (diff)
downloadperlweeklychallenge-club-a3f78f2b0fec122fe2272e1bbe1febbebac4fc36.tar.gz
perlweeklychallenge-club-a3f78f2b0fec122fe2272e1bbe1febbebac4fc36.tar.bz2
perlweeklychallenge-club-a3f78f2b0fec122fe2272e1bbe1febbebac4fc36.zip
Merge branch 'manwar:master' into 254
Diffstat (limited to 'challenge-254/sgreen/python')
-rwxr-xr-xchallenge-254/sgreen/python/ch-1.py23
-rwxr-xr-xchallenge-254/sgreen/python/ch-2.py31
-rwxr-xr-xchallenge-254/sgreen/python/test.py22
3 files changed, 76 insertions, 0 deletions
diff --git a/challenge-254/sgreen/python/ch-1.py b/challenge-254/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..37c492575d
--- /dev/null
+++ b/challenge-254/sgreen/python/ch-1.py
@@ -0,0 +1,23 @@
+#!/usr/bin/env python3
+
+import sys
+
+
+def three_power(n: int) -> bool:
+ # Get the closest integer to a cube root
+ i = round(abs(n) ** (1/3))
+
+ # Return true if this number is indeed a cube root
+ return i ** 3 == abs(n)
+
+
+def main():
+ # Convert input into integers
+ n = int(sys.argv[1])
+ result = three_power(n)
+ print('true' if result else 'false')
+
+
+if __name__ == '__main__':
+ # Convert input into integers
+ main()
diff --git a/challenge-254/sgreen/python/ch-2.py b/challenge-254/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..eed9768157
--- /dev/null
+++ b/challenge-254/sgreen/python/ch-2.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+
+import sys
+
+
+def reverse_vowels(s: str) -> str:
+ # Convert it to lower case
+ s = s.lower()
+
+ # Extract the vowels
+ vowel_list = [c for c in s if c in 'aeiou']
+
+ new_string = ''
+ for c in s:
+ # If the character here is a vowel
+ if c in 'aeiou':
+ # ... get the last vowel
+ new_string += vowel_list.pop()
+ else:
+ new_string += c
+
+ return new_string.capitalize()
+
+
+def main():
+ s = sys.argv[1]
+ print(reverse_vowels(s))
+
+
+if __name__ == '__main__':
+ main()
diff --git a/challenge-254/sgreen/python/test.py b/challenge-254/sgreen/python/test.py
new file mode 100755
index 0000000000..f9d9c15650
--- /dev/null
+++ b/challenge-254/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.assertTrue(ch_1.three_power(27))
+ self.assertTrue(ch_1.three_power(0))
+ self.assertFalse(ch_1.three_power(6))
+
+ def test_ch_2(self):
+ self.assertEqual(ch_2.reverse_vowels('Raku'), 'Ruka')
+ self.assertEqual(ch_2.reverse_vowels('Perl'), 'Perl')
+ self.assertEqual(ch_2.reverse_vowels('Julia'), 'Jaliu')
+ self.assertEqual(ch_2.reverse_vowels('Uiua'), 'Auiu')
+
+
+if __name__ == '__main__':
+ unittest.main()