Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่า Frequency ของทุกตัวอักษรใน String เป็น Prime หรือไม่ด้วย Python

โจทย์: กำหนด String s ตรวจสอบว่า Frequency ของทุก Character เป็น Prime Number หรือไม่

ตัวอย่าง

s = "apuuppa" → True (a:2, p:3, u:2 → ทั้งหมดเป็น Prime)

อัลกอริทึม

  1. นับ Frequency ทุก Character (Dictionary/Counter)
  2. ตรวจสอบทุก Frequency: >0 และเป็น Prime
  3. มีตัวไหนไม่ผ่าน → False

โค้ดตัวอย่าง

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))

Input / Output

Input: "apuuppa"
Output: True