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

Kiểm tra ký tự xuất hiện nhiều nhất trong chuỗi có cùng tần suất trong chuỗi khác (Python)

Bài toán: Cho hai chuỗi s, t. Tìm ký tự xuất hiện nhiều nhất trong s, kiểm tra xem nó xuất hiện trong t đúng bằng số lần đó hay không.

Triển khai Python

from collections import defaultdict

def solve(s, t):
    freq = defaultdict(int)
    for ch in s:
        freq[ch] += 1
    
    max_char = max(freq, key=freq.get)
    max_freq = freq[max_char]
    
    return t.count(max_char) == max_freq

# Test
print(solve("crosssection", "securesystem"))  # True: 's' xuất hiện 4 lần trong cả hai
print(solve("hello", "world"))                # False: 'l' 2 lần trong s, 1 lần trong t
print(solve("aaa", "aa"))                     # False: 'a' 3 vs 2

Kết quả

True

Giải thích

  • Dùng defaultdict(int) đếm tần suất ký tự trong s.
  • max(freq, key=freq.get) tìm key có value lớn nhất.
  • So sánh với t.count(max_char).
  • Nếu nhiều ký tự cùng tần suất max, max() trả về ký tự đầu tiên theo thứ tự duyệt (Python 3.7+ giữ thứ tự insertion).
  • Độ phức tạp: O(|s| + |t|).