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我忘了伯爵不必走一个街区。