문자열 집합이 있다고 가정합니다. 우리는 아나그램을 함께 그룹화해야 합니다. 따라서 ["eat", "tea", "tan", "ate", "nat", "bat"]이면 그룹은 [["ate","eat","tea"],[" nat","탄"],["박쥐"]]
이 문제를 해결하기 위해 다음 단계를 따릅니다.
- 해상도를 지도로 정의
- 문자열 배열의 i에 대해
- x :=x 및 결합, i의 정렬된 문자열
- 결과에 x인 경우
- 결과[x]에 i 삽입
- 다른 결과[x] :=[i]
- res의 값을 목록으로 반환
예제(파이썬)
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
class Solution: def groupAnagrams(self, strs): result = {} for i in strs: x = "".join(sorted(i)) if x in result: result[x].append(i) else: result[x] = [i] return list(result.values()) ob1 = Solution() print(ob1.groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"]))
입력
["eat", "tea", "tan", "ate", "nat", "bat"]
출력
[["ate","eat","tea"],["nat","tan"],["bat"]]