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

Chương trình Python tìm kích thước tập con lớn nhất của các từ anagram


Cho một mảng chữ thường. Nhiệm vụ tìm kích thước tập con lớn nhất của chuỗi là anagram của nhau. Anagram của chuỗi nghĩa là một chuỗi là anagram của chuỗi khác nếu chuỗi thứ hai chỉ là sắp xếp lại chuỗi đầu. Ta có thể giải quyết nhanh trong Python dùng phương thức Counter().

Ví dụ, chuỗi 'python' và 'typhon' là anagram.

Thuật toán

Bước 1: Tách chuỗi nhập cách nhau bởi dấu cách thành các từ.
Bước 2: Sắp xếp từng chuỗi trong danh sách chuỗi cho trước.
Bước 3: Tạo dictionary dùng Counter method với key là chuỗi và value là tần suất.
Bước 4: Lấy giá trị tần suất lớn nhất dùng hàm max.

Ví dụ mã

# Hàm tìm kích thước tập con lớn nhất của từ anagram
from collections import Counter

def largestana(str1):
    # Tách chuỗi nhập cách nhau bởi dấu cách
    str1 = str1.split(" ")
    # Sắp xếp từng chuỗi trong danh sách
    for i in range(0, len(str1)):
        str1[i] = ''.join(sorted(str1[i]))
    # Tạo dictionary dùng Counter
    newstr1 = Counter(str1)
    # Lấy giá trị tần suất lớn nhất
    print("The Size Of largest subset of Anangram word is ::>", max(newstr1.values()))

# Driver program
if __name__ == "__main__":
    str1 = input("Enter the string ::>")
    largestana(str1)

Kết quả

Enter the string ::>qwe ewq rty ytr ytr ytr
The Size Of largest subset of Anangram word is ::> 4