두 문자열 비교하기

GonnabeAlright·2022년 5월 1일
0
post-thumbnail
post-custom-banner

두 문자를 비교하여 동일할 시 true를 반환하고 그렇지 않으면 false를 반환하세요.

결과

'use strict'

function validAnagram(first, second) {
  if (first.length !== second.length) return false;
  const lookup = {};
  
  for (let i = 0; i < first.length; i++) {
    let letter = first[i];
    lookup[letter] = ++lookup[letter] || 1;
  }
  
  for (let i = 0; i < second.length; i++) {
    let letter = second[i];
    if(!lookup[letter]) return false;
    else lookup[letter] -= 1;
  }
  
  return true;
}

validAnagram('test', 'test'); // true
validAnagram('2222', 'test'); // false

리뷰

  • 비교할 두 문자를 각각 매개변수로 전달받고 가장 먼저 문자열 길이 비교를 통해 두 문자의 길이가 서로 일치하지 않을 경우 false를 반환합니다.
  • 룩업 테이블로 활용할 상수 객체 lookup을 빈 객체로 초기화합니다.
  • 첫 번째 매개변수로 전달받은 문자열을 반복문으로 순회하면서 각각의 문자를 letter 변수에 담아 lookup 테이블에 해당 문자를 키로 하여 값이 존재할 경우 1을 추가합니다.
  • 첫 번째 반복문의 결과로 첫 번째 문자열의 각 문자들이 lookup 객체에 포함되어 있으므로 두 번째 매개변수로 전달받은 문자열에 포함된 각각의 문자들의 lookup 객체에 포함되어 있는지 비교합니다.
  • lookup 객체에 문자가 포함되어 있지 않으면 일치하지 않은 것이므로 false를 반환하여 반복문을 종료하고 문자가 포함되어 있다면 value값에 1을 차감하여 줍니다. 모든 반복문을 순회하였다면 매개변수로 전달받은 두 문자열이 일치한 것이므로 true를 반환합니다.
post-custom-banner

0개의 댓글