Cho danh sách chuỗi words, gom nhóm các từ anagram (cùng bộ chữ cái) và trả về kích thước nhóm lớn nhất.
Ví dụ: ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"] → kết quả 3 (nhóm ["xyz", "zyx", "yzx"]).
Giải thuật (Hash Map với khóa là chuỗi đã sắp xếp)
- Khởi tạo
,. - Với mỗi từ
trong:(khóa chuẩn hóa)...
- Trả về
.
Ví dụ minh họa
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)) # Output: 3
Đầu vào
["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
Đầu ra
3