Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 문자열을 비교하고 가능성의 백분율을 반환합니다.

<시간/>

우리는 두 문자열을 비교하고 그들이 얼마나 유사한지 백분율 가능성을 반환할 수 있는 JavaScript 함수를 작성해야 합니다. 백분율은 두 문자열이 공통적으로 가지고 있는 많은 문자의 척도일 뿐입니다.

완전히 유사하면 출력은 100이어야 하고 공통 문자가 전혀 포함되어 있지 않으면 출력은 0이어야 합니다.

예시

const computeSimilarity =(str1 ='', str2 ='') => { let long =str1; 더 짧게 하자 =str2; if (str1.length  { str1 =str1 .toLowerCase(); str2 =str2.toLowerCase(); 하자 arr =새로운 Array(); for (let i =0; i <=str1.length; i++) { let lastValue =i; for (j =0; j <=str2.length; j++) { if (i ==0){ arr[j] =j; }else if(j> 0){ let newValue =arr[j - 1]; if(str1.charAt(i - 1) !=str2.charAt(j - 1)) newValue =Math.min(Math.min(newValue, lastValue), arr[j]) + 1; arr[j - 1] =마지막 값; 마지막 값 =새 값; } } if (i> 0) arr[str2.length] =lastValue; } 반환 arr[str2.length];};console.log(calculateSimilarity('수학','Mathamatecs'));

출력

이것은 다음과 같은 출력을 생성합니다 -

<미리>[ [ 1, 10, 100 ], [ 1, 10, 200 ], [ 1, 10, 300 ], [ 1, 20, 100 ], [ 1, 20, 200 ], [ 1, 20 , 300 ], [ 2, 10, 100 ], [ 2, 10, 200 ], [ 2, 10, 300 ], [ 2, 20, 100 ], [ 2, 20 , 200 ], [ 2, 20 , 300 ]]