สมมติว่าเรามีสตริง s ที่มีตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ ตัวเลขและอักขระพิเศษ เราต้องตรวจสอบว่าความถี่ของอักขระตัวใดตัวหนึ่งเกินครึ่งความยาวของสตริงหรือไม่
ดังนั้น หากอินพุตเป็น s ="CC*Ca5&CC" ผลลัพธ์จะเป็น True เนื่องจากความถี่ของ 'C' คือ 5 และความยาวของสตริงคือ 9 (5> 9/2)
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- freq :=แผนที่ที่มีความถี่ของอักขระ s
- สำหรับแต่ละ ch ในความถี่ ทำ
- ถ้าความถี่ของ ch> (ขนาด s / 2) แล้ว
- คืนค่า True
- ถ้าความถี่ของ ch> (ขนาด s / 2) แล้ว
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
from collections import defaultdict def solve(s): freq = defaultdict(int) for ch in s: freq[ch] += 1 for ch in freq: if freq[ch] > len(s) // 2: return True return False s = "CC*Ca5&CC" print(solve(s))
อินพุต
"CC*Ca5&CC"
ผลลัพธ์
True