[Algorithms] 07. Anagrams

Mikyung Lee·2021년 2월 8일
0
post-thumbnail

문제 🔥🔥🔥


해결방법


1.RegExp - \w와 \W는 a부터 z, A부터 Z, 0부터 9 _ 등의 ASCII 문자에만 일치한다.

2. /[^\w]/g 이 부분이 잘 이해가지 않지만 특수문자를 없애려는 것 같다
3. helper 함수를 만든다
4. 길이를 비교한다
5. for loop를 돌려서 string을 비교한다


  1. .sort 메소드를 사용한다 (문자 오름차순 정렬, 숫자 정렬)
  2. 배열로 바꿔줘야 sort 메소드를 사용 가능하다

제출 코드


function anagrams(stringA, stringB) {
  const aCharMap = buildCharMap(stringA);
  const bCharMap = buildCharMap(stringB);
  
  if (Object.keys(aCharMap).length !== Object.keys(bCharMap).length){
      return false;
      }
  for (let char in aCharMap) {
    if (aCharMAp[char] !== bCharMap[char]) {
      return false;
    }
  }
  return true;
}

function buildCharMap(str) {
  const charMap = {};
  
  for (let char of str.replace(/[^\w]/g, '').toLowerCase()) {
    charMap [char] = charMap[char] +1 || 1;
  }
  return charMap;
}
function anagrams(stringA, stringB) {
  return cleanString(stringA) === cleanString(stringB);
}

function cleanString(str) {
  return str.replace(/[^\w]/g,'').toLowerCase().split('').sort().join('');
}
profile
front-end developer 🌷

0개의 댓글