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

Python의 단어 목록에서 가장 큰 아나그램 그룹을 찾는 프로그램

<시간/>

문자열 단어 목록이 있다고 가정하고 모든 아나그램을 함께 그룹화하고 가장 큰 그룹의 크기를 반환해야 합니다.

따라서 입력이 단어 =["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]와 같으면 출력은 ["xyz", "zyx"와 같이 3이 됩니다. , "yzx"]가 가장 큰 그룹입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 조회 :=새 지도, 처음에는 비어 있음

  • 해상도 :=0

  • 단어의 각 i에 대해 수행

    • p :=사전순으로 i 정렬

    • p가 조회 중이면 개수를 늘리고 그렇지 않으면 1

    • res :=최대 res 및 조회[p]

  • 반환 해상도

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution:
   def solve(self, words):
      lookup = {}
      res = 0
      for i in words:
         p = "".join(sorted(i))
         lookup[p] = lookup.get(p, 0) + 1
         res = max(res, lookup[p])
      return res
ob = Solution()
words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
print(ob.solve(words))

입력

["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]

출력

3