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

ตรวจสอบว่ามีตัวอักษรซ้ำเกินครึ่งหนึ่งของความยาวสตริงหรือไม่ ใน Python


ปัญหา

ให้สตริง s ตรวจสอบว่ามีตัวอักษรใดตัวหนึ่งที่ความถี่ > len(s)/2 หรือไม่

ตัวอย่าง

s = "CC*Ca5&CC" → ความยาว 9, 'C' ปรากฏ 5 ครั้ง (5 > 4.5) → True

แนวคิดการแก้ปัญหา

  1. นับความถี่ของแต่ละตัวอักษร (ใช้ dictionary หรือ Counter)
  2. ตรวจสอบว่ามีความถี่ไหน > len(s)//2

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

from collections import Counter

def solve(s):
    freq = Counter(s)
    half = len(s) // 2
    return any(count > half for count in freq.values())

print(solve("CC*Ca5&CC"))  # True

อินพุต / เอาต์พุต

Input:  "CC*Ca5&CC"
Output: True