애너그램:
서로의 문자를 다른 순서로 배열하여 만들 수 있는 두 개의 단어 또는 구를 쥐와 타르와 같이 서로의 아나그램이라고 합니다.
일부 아나그램 문자열을 포함할 수 있는 문자열 배열을 사용하는 JavaScript 함수를 작성해야 합니다. 이 함수는 모든 아나그램을 별도의 하위 배열로 그룹화하고 이렇게 형성된 새 배열을 반환해야 합니다.
예를 들어 -
입력 배열이 -
인 경우const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];
그러면 출력 배열은 -
여야 합니다.const output = [ ['rat', 'tar', 'art'], ['jar', 'raj'], ['ram', 'arm', 'mar'] ];
예시
다음은 코드입니다 -
const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art']; const groupSimilarWords = (arr = []) => { if (arr.length === 0){ return arr; }; const map = new Map(); for(let str of arr){ let sorted = [...str]; sorted.sort(); sorted = sorted.join(''); if(map.has(sorted)){ map.get(sorted).push(str); }else{ map.set(sorted, [str]) }; }; return [...map.values()]; }; console.log(groupSimilarWords(arr));
출력
다음은 콘솔 출력입니다 -
[ [ 'rat', 'tar', 'art' ], [ 'jar', 'raj' ], [ 'ram', 'arm', 'mar' ] ]