aboutsummaryrefslogtreecommitdiff
path: root/challenge-112/abigail/python
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-112/abigail/python')
-rw-r--r--challenge-112/abigail/python/ch-1.py24
-rw-r--r--challenge-112/abigail/python/ch-2.py21
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-112/abigail/python/ch-1.py b/challenge-112/abigail/python/ch-1.py
new file mode 100644
index 0000000000..bf52e6d83c
--- /dev/null
+++ b/challenge-112/abigail/python/ch-1.py
@@ -0,0 +1,24 @@
+#!/opt/local/bin/python
+
+#
+# See ../README.md
+#
+
+#
+# Run as: python ch-1.py < input-file
+#
+
+import fileinput
+
+for line in fileinput . input ():
+ parts = line . rstrip () . split ("/") # Split input on /
+ parts2 = []
+ for part in parts:
+ if part == "" or part == ".": # Skip empty parts,
+ continue # and current directory.
+ if part == "..": # Pop parent directory
+ if len (parts2):
+ parts2 . pop ()
+ continue
+ parts2 . append (part) # Else, append.
+ print ("/" + "/" . join (parts2)) # Print result.
diff --git a/challenge-112/abigail/python/ch-2.py b/challenge-112/abigail/python/ch-2.py
new file mode 100644
index 0000000000..3e2a55750d
--- /dev/null
+++ b/challenge-112/abigail/python/ch-2.py
@@ -0,0 +1,21 @@
+#!/opt/local/bin/python
+
+#
+# See ../README.md
+#
+
+#
+# Run as: python ch-1.py < input-file
+#
+
+import fileinput
+
+cache = {0: 1, 1: 1}
+
+def fib (n):
+ if not n in cache:
+ cache [n] = fib (n - 1) + fib (n - 2)
+ return (cache [n])
+
+for line in fileinput . input ():
+ print (fib (int (line)))