处理汉明距离 - 需要添加零以使两个字符串匹配最长字符串的长度

Working on Hamming Distance - need to add zeros to have two strings match length of longest string

我正在尝试解决这个汉明距离问题.. 目前卡在我的 while 循环中,它没有添加 '0' 来满足两个字符串中的最长长度 (minLength)。我希望 shortestString 结果为“001”,但现在它只是在做“01”.. 请帮忙,在此先感谢。

var hammingDistance = function(x, y) {

var yString = y.toString(2); var xString = x.toString(2);

if(xString.length > yString.length){
    var minLength = xString.length;
    var shortestString = yString;
    var longestString = xString;
}
else{
    minLength = yString.length;
    shortestString = xString;
    longestString = yString;
}

while(shortestString.length < minLength){
    newString = '0' + shortestString;
    shortestString++;
    return newString;
}
console.log(newString);

}; hammingDistance(1, 4);

如果您在 while 循环中去掉 shortestString++;,它应该可以工作。

该变量是一个字符串,因此增加它可能会造成各种损害。当您添加“0”时,您实际上是在递增它,并且您正在 while 条件下检查它的长度。

您还需要将 return newstring 移到 while 之外,目前您的 while 循环将只执行一次,因为 return 在第一遍中跳出。