สมมติว่าเรามีสตริง s เราต้องตรวจสอบว่าการปรากฎของอักขระแต่ละตัวใน s เป็นจำนวนเฉพาะหรือไม่
ดังนั้น หากอินพุตเป็นเหมือน s ="apuuppa" ผลลัพธ์จะเป็น True เนื่องจากมีสองตัว 'a' สามตัว และ 'p' สองตัว
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- freq :=แผนที่ที่มีอักขระทั้งหมดและความถี่
- สำหรับอักขระแต่ละตัวในความถี่ ให้ทำ
- ถ้า freq[char]> 0 และ freq[char] ไม่ใช่จำนวนเฉพาะ ดังนั้น
- คืนค่าเท็จ
- ถ้า freq[char]> 0 และ freq[char] ไม่ใช่จำนวนเฉพาะ ดังนั้น
- คืนค่า True
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
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 i in range(len(s)): freq[s[i]] += 1 for char in freq: if freq[char] > 0 and isPrime(freq[char]) == False: return False return True s = "apuuppa" print(solve(s))
อินพุต
"apuuppa"
ผลลัพธ์
True