From: William James Date: 2005-08-30T20:51:49+09:00 Subject: Re: Fwd: [SOLUTION] Word Chains (#44) Short: D=IO.read('dict').split($/).grep(/^.{#{$*[0].size}}$/) def rate(new,old,goal,l) t=0; v=0; new.size.times{|i|t+=1 if new[i]!=old[i] v+=1 if new[i]==goal[i] } [ 1==t && nil==l.index(new), v ] end def m(a,b,l) l << a.dup if a==b then p l; exit; end D.inject([]){|w,x| y,v = rate(x,a,b,l) w << [v,x] if y ; w }.sort.reverse_each{|v,x| m(x,b,l) } end m($*[0], $*[1], [])