【发布时间】:2017-01-08 04:31:29
【问题描述】:
我正在 exercism.io 上进行练习,第三个要求我们比较两个 DNA 字符串并返回它们之间的差异(汉明距离)。
例如:
GAGCCTACTAACGGGAT
CATCGTAATGACGGCCT
^ ^ ^ ^ ^ ^^
在该比较中排列了 7 个不同的字符。我的问题是我是否采取了正确的方法来解决这个问题。我创建了两个空数组,创建了一个循环遍历两个字符串并在它们相遇时推送不同字母的函数。
我尝试通过控制台运行它,但总是收到意外的输入错误。
var diff = [];
var same = [];
function ham(dna1, dna2) {
for (var i = 0; i < dna1.length; i++)
for (var j = 0; j < dna2.length; i++){
if (dna1[i] !== dna2[j]) {
console.log(dna1[i]);
diff.push(dna1[i]);
}
else {
console.log(dna1[i]);
same.push(dna1[i]);
}
return diff.length;
}
ham("GAGCCTACTAACGGGAT", "CATCGTAATGACGGCCT");
console.log("The Hamming distance between both DNA types is " + diff.length + ".");
【问题讨论】:
-
您在第一个循环中缺少 {}!
-
@SandeepNayak 第一个
for中的唯一语句是第二个for,因此尽管包含它们可能是一个好习惯,但{}并不是严格要求的。 -
@Dave,你能包括你得到的错误吗?
-
你应该在 for 循环之外返回
diff.length -
您缺少第二个循环的 {} 或
ham函数的 {}
标签: javascript