49. Group Anagrams

LONGNEW·2023년 8월 23일
0

CP

목록 보기
146/155

https://leetcode.com/problems/group-anagrams/description/?envType=featured-list&envId=top-google-questions?envType=featured-list&envId=top-google-questions

input :

  • strs

output :

  • 동일한 anagram끼리 묶어서 반환하시오.

조건 :


Solution explain : Solution1

idea

  • 문자열을 구성하는 원소를 정렬하여 동일한 anagram을 구분한다.

  • 문자열 내부의 원소를 배열로 변환한다.
  • 배열을 정렬한 후 튜플로 변경한다.
  • 해당 튜플을 키로 하는 딕셔너리를 만들어 value로는 해당 문자열을 추가한다.

주의

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        ret = dict()

        # use key as a sorted chars
        # use value as a element of strs array
        for item in strs:
            words = [c for c in item]
            words.sort()
            words = tuple(words)
            
            if words not in ret:
                ret[words] = []
            ret[words].append(item)
        
        ans = []
        for key in ret.keys():
            ans.append(ret[key])
        return ans

0개의 댓글