计数循环返回1而不是实际计数

时间:2014-09-30 17:14:56

标签: ruby for-loop

我需要在两个相似的字符串中计算不同的字母。

这是我的代码:

class Hamming
  def compute(dna1, dna2)
    count=0
    for i in 0...dna1.length
      count=+1 unless dna1[i] == dna2[i]            
    end     
    return count    
  end
end

ham = Hamming.new
ham.compute('ABBCCDD', 'AABBCCD')
#=> 1

如果匹配,我的方法会一直返回1,如果没有匹配,则会0

2 个答案:

答案 0 :(得分:2)

也许你应该写count+=1(递增计数)而不是count=+1(指定+1来计算)

答案 1 :(得分:0)

这是值得冥想的事情:

foo = 'ABBCCDD'
bar = 'AABBCCD'
differences = foo.chars.zip(bar.chars).reject{ |x,y| x == y } # => [["B", "A"], ["C", "B"], ["D", "C"]]
differences.size # => 3