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

Kiểm tra anagram trong Python bằng collections.Counter()

Hai chuỗi được gọi là anagram nếu chúng chứa cùng các ký tự nhưng thứ tự khác nhau. Hướng dẫn này sử dụng collections.Counter() để kiểm tra anagram hiệu quả.

collections.Counter()

Counter trả về đối tượng dictionary chứa tần suất xuất hiện của mỗi ký tự. Nó hỗ trợ các phương thức như most_common(), elements(), v.v.

Ví dụ cơ bản

import collections

counter = collections.Counter("Hafeez")
print(counter)
print("\nMost common character")
print(counter.most_common(1))

Kết quả

Counter({'e': 2, 'H': 1, 'a': 1, 'f': 1, 'z': 1})
Most common character
[('e', 2)]

Thuật toán kiểm tra anagram

  1. Khởi tạo hai chuỗi.
  2. Tạo đối tượng Counter cho mỗi chuỗi.
  3. So sánh hai Counter: nếu bằng nhau → True, ngược lại → False.

Ví dụ hoàn chỉnh

import collections

string_one = "cat"
string_two = "atc"

if collections.Counter(string_one) == collections.Counter(string_two):
    print(True)
else:
    print(False)

Kết quả

True

Kết luận

Cách này ngắn gọn, dễ đọc và hiệu quả cho bài toán anagram. Bạn có thể mở rộng để tìm tất cả anagram trong danh sách từ.