애너그램:
서로의 문자를 다른 순서로 배열하여 만들 수 있는 두 개의 단어 또는 구를 쥐와 타르와 같이 서로의 아나그램이라고 합니다.
일부 아나그램 문자열을 포함할 수 있는 문자열 배열을 사용하는 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' ] ]