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

문자열 아나그램 확인 JavaScript

<시간/>

애너그램

아나그램은 문자열 쌍으로, 그 중 하나가 특정 패턴으로 재정렬될 때 다른 하나가 생성됩니다.

예를 들어 -

'hello'와 'lolhe'는 아나그램입니다. 'lolhe'를 재정렬하여 'hello' 문자열을 형성하거나 그 반대의 경우도 마찬가지이기 때문입니다.

str1과 str2와 같은 두 개의 문자열을 받는 JavaScript 함수를 작성해야 합니다. 문자열이 서로의 아나그램이면 함수는 true를 반환해야 하고, 그렇지 않으면 false를 반환해야 합니다.

각 입력 문자열의 문자 수를 집계하는 맵을 만들 수 있습니다. 그런 다음 지도를 비교하여 동일한지 확인할 수 있습니다.

예시

const str1 = 'hello';
const str2 = 'lolhe';
const charCount = string => {
   const table = {};
   for (let char of string.replace(/\W/g, "").toLowerCase()) table[char] = table[char] + 1 || 1;
   return table;
};
const anagrams = (stringA, stringB) => {
   const charCountA = charCount(stringA); const charCountB = charCount(stringB);
   if (Object.keys(charCountA).length !== Object.keys(charCountB).length)
      return false;
      for (let char in charCountA)
      if (charCountA[char] !== charCountB[char])
         return false;
      return true;
};
console.log(anagrams(str1, str2));

출력

콘솔의 출력은 -

true