그룹 애너그램. (DSA 시리즈 2)
문제
문자열 strs의 배열이 주어지면 애너그램을 함께 그룹화합니다. 어떤 순서로든 답변을 반환할 수 있습니다.
애너그램은 일반적으로 모든 원래 문자를 정확히 한 번만 사용하여 다른 단어나 구의 문자를 재배열하여 형성된 단어 또는 구입니다.
*/
해결책
/**
* for each item in array, sort alphabetically, then add sorted item to map as key, push index to value array eg; {aet:[0,1,3], ...}
* return values of every word(key) in the map as an array.
* Time Complexity is O(n)... I think. _Not sure if the sorting of each word takes an additional O(n)_
*/
function groupAnagram(arr){
const map = {}
for(let i = 0; i < arr.length; i++) {
const sortedWord = [...arr[i] ].sort((a,b)=> a.localeCompare(b)).join();
map[sortedWord] = map[sortedWord] !== undefined ? [...map[sortedWord], arr[i]] : [arr[i]]
}
return Object.values(map);
}
어쨌든 이 문제를 더 잘 해결할 수 있는 방법이 있다면 댓글에 솔루션을 추가할 수 있습니다. 나는 전문가가 아니다. 그냥 소리내어 배우기.
좋아요, 공유 및 댓글 남기는 것을 잊지 마세요. :)
Reference
이 문제에 관하여(그룹 애너그램. (DSA 시리즈 2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/olumidesamuel_/group-anagram-dsa-series-2-2cc8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)