문자열 단어 목록이 있다고 가정하고 모든 아나그램을 함께 그룹화하고 가장 큰 그룹의 크기를 반환해야 합니다.
따라서 입력이 단어 =["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