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

Ruby 计数循环返回1而不是实际计数,ruby,for-loop,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', '

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

这是我的密码:

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。

也许你应该写count+=1递增计数,而不是count=+1将+1分配给count

这里有一些需要思考的问题:

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

妈的,没看到那个:哦,他们不一样,我不知道,谢谢!:-你不需要为没有像本地人那样说英语而道歉。如果我们不理解您的问题,我们将提出问题,并且/或者最终会有人来清理它以使其更易于理解。您的问题是什么?如果您确实在尝试计算长字符串的汉明距离,那么使用本机扩展的现有库将更好地为您服务。如果你真的在研究DNA测序和比较,我强烈建议你使用一些现有的开源工具,比如And,或者商业解决方案。我只是在学习Ruby,这是一个例子,但谢谢你!。。或者.用{a,b | a!=b}代替.拒绝….哈!A我忘了伯爵不必走一个街区。