0
我试图找到两个字符串之间的字母差异。 例如,如果我把单词ATTGCC和GTTGAC,差异将是2,因为A和G以及C和G不是相同的字符。如何计算Ruby中字符串之间不同字母的数量?
class DNA
def initialize (nucleotide)
@nucleotide = nucleotide
end
def length
@nucleotide.length
end
def hamming_distance(other)
self.nucleotide.chars.zip(other.nucleotide) { |a,b| a == b }.count
end
protected
attr_reader :nucleotide
end
dna1 = DNA.new("ATTGCC")
dna2 = DNA.new("GTTGAC")
puts dna1.hamming_distance(dna2)
方法hamming_distance并未真正发挥作用,因为它给出了一个错误的参数类型为String(必须回应:每个)(类型错误)
查找https://en.wikipedia.org/wiki/Levenshtein_distance – Mircea
鉴于你[前雇主发现不匹配的对数问题](https://stackoverflow.com/questions/39711526/how-to-compare-two-instance-variables-from-the-same-class-in-ruby)我假设输入字符串是(for例如)'“ATTGCC”'和'“GTTGAC”'并且长度将是相等的。值得在这个问题中明确这些条件。 – meagar
是的,我继续并更新了问题。谢谢。 – Codes316