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

ตรวจสอบว่าความถี่ของอักขระใด ๆ มากกว่าครึ่งหนึ่งของความยาวของสตริงใน Python


สมมติว่าเรามีสตริง s ที่มีตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ ตัวเลขและอักขระพิเศษ เราต้องตรวจสอบว่าความถี่ของอักขระตัวใดตัวหนึ่งเกินครึ่งความยาวของสตริงหรือไม่

ดังนั้น หากอินพุตเป็น s ="CC*Ca5&CC" ผลลัพธ์จะเป็น True เนื่องจากความถี่ของ 'C' คือ 5 และความยาวของสตริงคือ 9 (5> 9/2)

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • freq :=แผนที่ที่มีความถี่ของอักขระ s
  • สำหรับแต่ละ ch ในความถี่ ทำ
    • ถ้าความถี่ของ ch> (ขนาด s / 2) แล้ว
      • คืนค่า True
  • คืนค่าเท็จ

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

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

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