Cho 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 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. Giải quyết nhanh bằng Counter() method.
Ví dụ, '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 từ. Bước 2: Sắp xếp từng chuỗi trong danh sách chuỗi. Bước 3: Tạo dictionary dùng Counter method với key là chuỗi, value là tần suất. Bước 4: Lấy giá trị tần suất lớn nhất dùng 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
for i in range(0, len(str1)):
str1[i] = ''.join(sorted(str1[i]))
# Tạo dictionary 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