我试图解决这个汉明距离问题..目前我的while循环已经停留了,这并不是为了满足最长的长度(minLength)两个字符串。我希望shortestString能够产生" 001"但是现在它只是做着#34; 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);
}; 汉明距离(1,4);
答案 0 :(得分:0)
如果你在while循环中摆脱shortestString++;
它应该有用。
该变量是一个字符串,因此增加它可以做各种各样的损坏。当你添加'0'时,你实际上是在递增它,并且你在while条件下检查它的长度。
你还需要移动return newstring
以外的时间,此时你的while循环只会执行一次,因为第一次传递中的返回突然出现。