From dd729f69ee696341e8f2298c5cc7b703cdc8c03c Mon Sep 17 00:00:00 2001 From: Julich Mera Date: Fri, 14 Nov 2014 16:06:11 -0500 Subject: [PATCH] Add ruby solution for array pair sum, made minor change to balanced brackets problem. --- solutions/ruby/array_pair_sum.rb | 15 +++++++++++++++ solutions/ruby/balanced_brackets.rb | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 solutions/ruby/array_pair_sum.rb diff --git a/solutions/ruby/array_pair_sum.rb b/solutions/ruby/array_pair_sum.rb new file mode 100644 index 0000000..f0c70e9 --- /dev/null +++ b/solutions/ruby/array_pair_sum.rb @@ -0,0 +1,15 @@ +def array_pair_sum(sum, arr) + result = [] + seen = Hash.new(false) + while elem = arr.shift + target = sum - elem + (seen[elem] || seen[target]) ? next : (seen[elem] = true) + result << [elem, target] if arr.include?(target) + end + result +end + +alias :f :array_pair_sum + +puts f(10, [3, 4, 5, 6, 7]).to_s # => [[3, 7], [4, 6]] +puts f(8, [3, 4, 5, 4, 4]).to_s # => [[3, 5], [4, 4]] \ No newline at end of file diff --git a/solutions/ruby/balanced_brackets.rb b/solutions/ruby/balanced_brackets.rb index f961db1..e9bb45d 100644 --- a/solutions/ruby/balanced_brackets.rb +++ b/solutions/ruby/balanced_brackets.rb @@ -6,5 +6,5 @@ def balanced_brackets(str) if brackets[c] then arr << c else return false if arr.size < 1 || (brackets.key(c) != arr.pop) end end - arr.size == 0 ? true : false + arr.empty? end