处理汉明距离 - 需要添加零以使两个字符串匹配最长字符串的长度
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 在第一遍中跳出。
我正在尝试解决这个汉明距离问题.. 目前卡在我的 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 在第一遍中跳出。