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

JavaScript에서 두 문자열의 차이점 개수 구하기

개요

JavaScript에서 두 문자열을 받아 같은 위치에 있는 문자들끼리 서로 다른 개수(차이점)를 계산하는 함수를 작성해야 하는 경우가 있습니다. 위치가 대응되는 두 문자가 서로 같지 않다면, 그 지점은 하나의 차이점으로 간주됩니다.

예를 들어 첫 번째 문자열의 5번째 글자와 두 번째 문자열의 5번째 글자가 다르다면, 이는 하나의 불일치로 카운트됩니다.

문자열 예시

다음과 같은 두 개의 문자열이 있다고 가정해 보겠습니다.

const str1 = 'Hello world!!!';
const str2 = 'Hellp world111';

이 두 문자열을 한 글자씩 비교하면 다음과 같습니다.

  • 5번째 문자: 'o''p' → 불일치
  • 12번째 문자: '!''1' → 불일치
  • 13번째 문자: '!''1' → 불일치
  • 14번째 문자: '!''1' → 불일치

따라서 총 차이점 개수는 4개입니다.

구현 코드

이 문제를 해결하는 코드는 다음과 같습니다.

const str1 = 'Hello world!!!';
const str2 = 'Hellp world111';

const dissimilarity = (str1 = '', str2 = '') => {
    let count = 0;
    for(let i = 0; i < str1.length; i++){
        if(str1[i] === str2[i]){
            continue;
        };
        count++;
    };
    return count;
};

console.log(dissimilarity(str1, str2));

코드 동작 원리

  1. 차이점을 저장할 변수 count를 0으로 초기화합니다.
  2. for 반복문으로 첫 번째 문자열의 길이만큼 순회하면서 각 인덱스의 문자를 비교합니다.
  3. 두 문자가 같으면 continue로 건너뛰고, 다르면 count를 1 증가시킵니다.
  4. 반복이 끝나면 최종 count 값을 반환합니다.

실행 결과

콘솔에 출력되는 결과는 다음과 같습니다.

4

참고 사항

이 구현은 첫 번째 문자열의 길이를 기준으로 순회하므로, 두 문자열의 길이가 다른 경우 짧은 문자열 범위까지만 비교됩니다. 만약 길이 차이까지 차이점으로 포함하고 싶다면, 두 문자열 중 더 긴 길이만큼 순회하거나 길이 차이를 결과에 더해주면 됩니다.