aboutsummaryrefslogtreecommitdiff
path: root/challenge-145/sgreen/python
diff options
context:
space:
mode:
authorSimon Green <mail@simon.green>2022-01-02 20:58:06 +1100
committerSimon Green <mail@simon.green>2022-01-02 20:58:06 +1100
commit8bdcc1eac06889402d8b9beb3f1e7c467df9a4ff (patch)
tree84fe8efffe3de4bfc78a4041c8d204794fe26142 /challenge-145/sgreen/python
parent20668657d4587d0f6d191da8c7f658ae6c949581 (diff)
downloadperlweeklychallenge-club-8bdcc1eac06889402d8b9beb3f1e7c467df9a4ff.tar.gz
perlweeklychallenge-club-8bdcc1eac06889402d8b9beb3f1e7c467df9a4ff.tar.bz2
perlweeklychallenge-club-8bdcc1eac06889402d8b9beb3f1e7c467df9a4ff.zip
sgreen solutions to challenge 145
Diffstat (limited to 'challenge-145/sgreen/python')
-rwxr-xr-xchallenge-145/sgreen/python/ch-1.py28
-rwxr-xr-xchallenge-145/sgreen/python/ch-2.py27
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-145/sgreen/python/ch-1.py b/challenge-145/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..7c18890304
--- /dev/null
+++ b/challenge-145/sgreen/python/ch-1.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+import sys
+import re
+
+
+def main(inputs):
+ first_nums = list(map(int, re.findall(r'-?\d+', inputs[0])))
+ second_nums = list(map(int, re.findall(r'-?\d+', inputs[1])))
+
+ if len(first_nums) != len(second_nums):
+ raise ValueError('Arrays are of different lengths')
+
+ dots = []
+ sums = []
+ for i in range(len(first_nums)):
+ dots.append(f'({first_nums[i]} × {second_nums[i]})')
+ sums.append(first_nums[i] * second_nums[i])
+
+ print(' + '.join(dots) +
+ ' => ' +
+ ' + '.join(map(str, sums)) +
+ ' => ' +
+ str(sum(sums)))
+
+
+if __name__ == '__main__':
+ main(sys.argv[1:])
diff --git a/challenge-145/sgreen/python/ch-2.py b/challenge-145/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..65ed569178
--- /dev/null
+++ b/challenge-145/sgreen/python/ch-2.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+
+import sys
+
+
+def main(word):
+ strings = []
+
+ # Make the starting point from each character
+ for i in range(len(word)):
+
+ # And the end point
+ for j in range(i, len(word)):
+
+ # This is string we will examine
+ s = word[i:j + 1]
+
+ # If we don't already know about it, and it's palindromic, add
+ # it to the string array
+ if s not in strings and s == s[::-1]:
+ strings.append(s)
+
+ print(*strings, sep=' ')
+
+
+if __name__ == '__main__':
+ main(sys.argv[1])