Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm nhóm anagram lớn nhất từ danh sách từ trong Python


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)

  1. Khởi tạo , .
  2. Với mỗi từ trong :
    • (khóa chuẩn hóa).
    • .
    • .
  3. 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