aboutsummaryrefslogtreecommitdiff
path: root/challenge-100/abigail/python
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2021-03-15 18:13:51 +0800
committer冯昶 <seaker@qq.com>2021-03-15 18:13:51 +0800
commit8b6be37fe4dac8b4c6489a95e55514b76b298d15 (patch)
treeae36c8ec2c71f606c0e36adaa19dba366a68a0b4 /challenge-100/abigail/python
parent865acfd056fb6f409ec6b1a81d60b931cbcb69fe (diff)
parentc9aec2da6bcb04b488183f09ca94bee488557aff (diff)
downloadperlweeklychallenge-club-8b6be37fe4dac8b4c6489a95e55514b76b298d15.tar.gz
perlweeklychallenge-club-8b6be37fe4dac8b4c6489a95e55514b76b298d15.tar.bz2
perlweeklychallenge-club-8b6be37fe4dac8b4c6489a95e55514b76b298d15.zip
Merge branch 'master' of github.com:seaker/perlweeklychallenge-club
Diffstat (limited to 'challenge-100/abigail/python')
-rw-r--r--challenge-100/abigail/python/ch-1.py50
-rw-r--r--challenge-100/abigail/python/ch-2.py36
2 files changed, 86 insertions, 0 deletions
diff --git a/challenge-100/abigail/python/ch-1.py b/challenge-100/abigail/python/ch-1.py
new file mode 100644
index 0000000000..c236191663
--- /dev/null
+++ b/challenge-100/abigail/python/ch-1.py
@@ -0,0 +1,50 @@
+#!/opt/local/bin/python
+
+#
+# See ../README.md
+#
+
+#
+# Run as python ch-1.py < input-file
+#
+
+import fileinput
+import re
+
+
+for line in fileinput . input ():
+ #
+ # Parse input
+ #
+ hour, minute, ampm = re . compile (r'([0-9]+):([0-9]+)\s*([ap]?)') \
+ . match (line) \
+ . groups ()
+ #
+ # Make sure we have integers
+ #
+ hour = int (hour)
+ minute = int (minute)
+
+ #
+ # Calculate new AM/PM marker
+ #
+ new_ampm = ""
+ if ampm == "":
+ if hour >= 12:
+ new_ampm = "pm"
+ else:
+ new_ampm = "am"
+
+ #
+ # Calculate new hour
+ #
+ hour = hour % 12
+ if ampm == "" and hour == 0:
+ hour = 12
+ if ampm == "p":
+ hour = hour + 12
+
+ #
+ # Print result
+ #
+ print ("{:02d}:{:02d}{:s}" . format (hour, minute, new_ampm))
diff --git a/challenge-100/abigail/python/ch-2.py b/challenge-100/abigail/python/ch-2.py
new file mode 100644
index 0000000000..b237f83d16
--- /dev/null
+++ b/challenge-100/abigail/python/ch-2.py
@@ -0,0 +1,36 @@
+#!/opt/local/bin/python
+
+#
+# See ../README.md
+#
+
+#
+# Run as python ch-2.py < input-file
+#
+
+import fileinput
+import re
+
+numbers = []
+
+#
+# Read in the data
+#
+for line in fileinput . input ():
+ numbers . append (list (map (lambda x: int (x),
+ re . compile (r'\s+')
+ . split (line . strip ()))))
+
+
+#
+# Calculate the minimum path, bottom to top
+#
+for x in range (len (numbers) - 2, -1, -1):
+ for y in range (0, len (numbers [x])):
+ numbers [x] [y] = numbers [x] [y] + min (numbers [x + 1] [y],
+ numbers [x + 1] [y + 1])
+
+#
+# Print result
+#
+print (numbers [0] [0])