Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 그룹 아나그램


문자열 집합이 있다고 가정합니다. 우리는 아나그램을 함께 그룹화해야 합니다. 따라서 ["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"]]