Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 유사한 문자열 비교하기 – 최대 n개의 다른 문자 허용

이번 글에서는 두 개의 문자열과 하나의 숫자 n을 인자로 받는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.

이 함수의 역할은 두 문자열을 서로 비교하여 동일한 문자들을 포함하고 있는지 확인하는 것입니다. 구체적으로 다음 조건 중 하나라도 만족하면 true를 반환합니다.

  • 두 문자열이 문자의 순서와 관계없이 완전히 동일한 문자들로 구성된 경우
  • 두 문자열 사이에 서로 다른 문자가 최대 n개 이하인 경우

위 조건을 만족하지 못하면 함수는 false를 반환해야 합니다.

예제 코드

다음은 해당 기능을 구현한 코드입니다 −

const str = 'some random text';
const str2 = 'some r@ndom text';
const deviationMatching = (first, second, num) => {
   let count = 0;
   for(let i = 0; i < first.length; i++){
      if(!second.includes(first[i])){
         count++;
      };
      if(count > num){
         return false;
      };
   };
   return true;
};
console.log(deviationMatching(str, str2, 1));

코드 동작 원리

코드가 어떻게 작동하는지 단계별로 살펴보겠습니다.

먼저 count 변수를 0으로 초기화하여 두 문자열 간의 불일치 횟수를 추적합니다. 그다음 첫 번째 문자열의 각 문자를 순회하면서, 해당 문자가 두 번째 문자열에 포함되어 있는지 includes() 메서드로 확인합니다. 포함되어 있지 않다면 count를 1 증가시킵니다.

순회 도중 count가 허용치 num을 초과하면 즉시 false를 반환하여 불필요한 연산을 줄입니다. 모든 문자를 확인한 후에도 count가 num 이하라면 true를 반환합니다.

출력 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다 −

true

'some random text'와 'some r@ndom text'는 '@' 문자 하나만 다르기 때문에, 허용 오차가 1일 때 true가 반환됩니다. 만약 num을 0으로 전달하면 두 문자열이 완전히 동일한 문자 집합을 가져야만 true가 나오게 됩니다.