이 해밍 거리 문제를 해결하기 위해 노력하고 있습니다. 현재 '0'을 만나지 않는 while 루프가 붙어 있습니다. 두 문자열 사이의 가장 긴 길이 (minLength). shortestString 결과를 "001"로 만들고 싶지만 지금은 "01"을하고 있습니다. 도움을 주시기 바랍니다, 미리 감사드립니다.해밍 거리에서 작업 - 두 문자열을 가장 긴 문자열의 길이와 일치 시키려면 0을 추가해야합니다.
VAR의 함수 해밍 거리 = (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);
감사합니다 @allnodcoms 이것은 leetcode를 통해 이루어지며, 다음은 나에게 '시간 초과 한계'오류를 제공합니다. jsbin이 나에게 '잘못된 return 문'오류를 표시합니다. while (shortestString.length
gmatsushima
OK, 새로운 접근법 ... 가장 긴 문자열 (Math.max 등)의 길이를 찾아 가장 짧은 문자열의 길이를 뺍니다. 이것은 필요한 패드 스트링의 길이를 제공합니다. 0의 배열을 만들고 배열을 빈 문자열을 구분 기호로 결합한 다음 가장 짧은 문자열을 끝에 추가하십시오. – allnodcoms
다음과 같이 작업 한 @allnodcoms에 감사드립니다 .. str = shortestString.length ; wantedLength = longestString.length; while (str <의도 길이) { zerosArray.push (0); newString = zerosArray.join ('') + shortestString; str ++; } console.log ('newString', newString); return newString;' – gmatsushima