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

Kiểm tra tần suất ký tự trong chuỗi có toàn số nguyên tố trong Python

Cho chuỗi s. Kiểm tra xem tần suất xuất hiện của MỖI ký tự trong s có phải số nguyên tố hay không.

Ví dụ: s="apuuppa" → a:2, p:3, u:2 (cả 3 đều nguyên tố) → True.

Thuật toán

  • Dùng defaultdict(int) đếm tần suất.
  • Duyệt dict, nếu tần suất > 0 và không phải nguyên tố → False.
  • Trả về True.

Ví dụ code

from collections import defaultdict

def isPrime(num):
    if num > 1:
        for i in range(2, num):
            if num % i == 0:
                return False
        return True
    return False

def solve(s):
    freq = defaultdict(int)
    for ch in s:
        freq[ch] += 1
    for char in freq:
        if freq[char] > 0 and not isPrime(freq[char]):
            return False
    return True

s = "apuuppa"
print(solve(s))

Đầu vào

"apuuppa"

Đầu ra

True