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

Ví dụ giao nhau (intersection) của Counter và dictionary trong Python

Sử dụng Counter để đếm ký tự, phép & lấy giao nhau (min count), so sánh với Counter gốc.

Ví dụ

from collections import Counter

def can_form(str1, str2):
    c1 = Counter(str1)
    c2 = Counter(str2)
    intersection = c1 & c2  # Lấy min count cho mỗi key
    return intersection == c1  # str1 có thể tạo từ str2?

s1 = "Hi Mark"
s2 = "how are yoU"
print("Chuỗi 1:", s1)
print("Chuỗi 2:", s2)

if can_form(s1, s2):
    print("Có thể tạo được")
else:
    print("Không thể tạo được")

Kết quả

Chuỗi 1: Hi Mark
Chuỗi 2: how are yoU
Không thể tạo được

Giải thích

  • Counter(str1) & Counter(str2) trả về Counter mới với count = min(count1, count2) cho mỗi key.
  • Nếu giao nhau bằng Counter(str1) -> mọi ký tự trong str1 đều có trong str2 với số lượng >=.
  • Ví dụ: 'H' không có trong str2 -> giao nhau thiếu 'H' -> False.
  • Phân biệt chữ hoa/thường.