From e39e44e6f15e6fa9852985d6b1e213f0d0c835a0 Mon Sep 17 00:00:00 2001 From: Adriana Date: Mon, 9 May 2016 20:49:59 -0700 Subject: [PATCH] Recursive hamming solution --- hamming.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 hamming.rb diff --git a/hamming.rb b/hamming.rb new file mode 100644 index 0000000..5ca5371 --- /dev/null +++ b/hamming.rb @@ -0,0 +1,18 @@ +class Hamming + def self.compute(strand_1, strand_2, distance = 0) + raise ArgumentError if strand_1.length != strand_2.length + + return distance if strand_1.length == 0 + + unless strand_1[0] == strand_2[0] + distance += 1 + end + + unless strand_1.length == 1 + return Hamming.compute(strand_1[1..-1], strand_2[1..-1], distance) + end + + return distance + + end +end