2017-01-09 74 views
0

我想解决这个海明距离问题..目前卡住我的while循环,这是不加'0满足两个字符串中的最长长度(minLength)。我希望最短的字符串结果为“001”,但现在它只是做“01”..请帮助,提前致谢。海明距离工作 - 需要添加零有两个字符串匹配长度最长的字符串的长度

变种汉明距离=函数(X,Y){

变种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); hammingDistance(1,4);

回答

0

如果你在while循环中删除shortestString++;它应该工作。

该变量是一个字符串,所以递增它可能会造成各种损害。无论如何,当你添加'0'时,你基本上增加了它,并且你正在while条件中检查它的长度。

您还需要将return newstring移到该时段之外,此时您的while循环只会在第一遍回退时执行一次。

+0

谢谢@allnodcoms这是通过leetcode,以下是给我一个'超时限制'的错误。 (shortestString.length gmatsushima

+0

OK,new approach ...找到最长字符串的长度(Math.max等),从中减去最短字符串的长度。这给你你需要的垫字符串的长度。创建一个零数组,加入数组(以空字符串作为分隔符),然后在其末尾添加最短字符串... – allnodcoms

+0

感谢您的帮助@allnodcoms以下工作。'str = shortestString.length ; intendedLength = longestString.length; while(str gmatsushima