From: Simon Strandgaard Date: 2006-01-02T01:32:14+09:00 Subject: Re: Numeric Maze (#60) My solution is not optimal nor fast.. but different than the other solutions so far. -- Simon Strandgaard def solve(a, b) t = "h#{b}" t = "h#{b*=2}" + t while b < a s = "#{a}d#{a*2}" a *= 2;b *= 2 s += "a#{a+=2}" while a < b s += t loop do l = s.length s.gsub!(/(\d+)d\d+a\d+a/) { "#{$1}a#{$1.to_i + 2}d" } s.gsub!(/4a6a8/, '4d8') s.gsub!(/(\D|^)(\d+)(?:\D\d+)+\D\2(\D|$)/) {$1 + $2 + $3} break if s.length == l end s.scan(/\d+/).map{|i|i.to_i} end