From 6b21ba5c2303a59a3cca7b693ea0a55faf766c95 Mon Sep 17 00:00:00 2001 From: Abigail Date: Tue, 11 May 2021 01:24:43 +0200 Subject: Ruby solutions for week 112 --- challenge-112/abigail/README.md | 2 ++ challenge-112/abigail/ruby/ch-1.rb | 27 +++++++++++++++++++++++++++ challenge-112/abigail/ruby/ch-2.rb | 22 ++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 challenge-112/abigail/ruby/ch-1.rb create mode 100644 challenge-112/abigail/ruby/ch-2.rb diff --git a/challenge-112/abigail/README.md b/challenge-112/abigail/README.md index 4b619db213..2b454118bb 100644 --- a/challenge-112/abigail/README.md +++ b/challenge-112/abigail/README.md @@ -40,6 +40,7 @@ Output: "/a" * [Node.js](node/ch-1.js) * [Perl](perl/ch-1.pl) * [Python](python/ch-1.py) +* [Ruby](ruby/ch-1.rb) ### Blog @@ -62,5 +63,6 @@ This is just finding the `$n + 1` Fibonacci number. * [Node.js](node/ch-1.js) * [Perl](perl/ch-2.pl) * [Python](python/ch-2.py) +* [Ruby](ruby/ch-1.rb) ### Blog diff --git a/challenge-112/abigail/ruby/ch-1.rb b/challenge-112/abigail/ruby/ch-1.rb new file mode 100644 index 0000000000..e26463cb68 --- /dev/null +++ b/challenge-112/abigail/ruby/ch-1.rb @@ -0,0 +1,27 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-1.rb < input-file +# + +ARGF . each_line do + | line | + parts = line . strip() . split (/\/+/) + parts2 = [] + parts . each do + | part | + if part == "" or part == "." # Skip empty parts and current directory + next + end + if part == ".." # Remove parent directory + parts2 . pop + next + end + parts2 . push (part) # Add part + end + puts ("/" + parts2 . join("/")) # Print result +end diff --git a/challenge-112/abigail/ruby/ch-2.rb b/challenge-112/abigail/ruby/ch-2.rb new file mode 100644 index 0000000000..68c59fef40 --- /dev/null +++ b/challenge-112/abigail/ruby/ch-2.rb @@ -0,0 +1,22 @@ +#!/usr/bin/ruby + +# +# See ../README.md +# + +# +# Run as: ruby ch-1.rb < input-file +# + +$cache = {} +$cache [0] = 1 +$cache [1] = 1 + +def fib (n) + $cache [n] ||= fib(n - 1) + fib(n - 2) +end + +ARGF . each_line do + | n | + puts (fib(n . to_i)) +end -- cgit