Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tần suất của bất kỳ ký tự nào có lớn hơn một nửa độ dài của chuỗi trong Python hay không

Giả sử chúng ta có một chuỗi s với các ký tự thường, hoa, số và đặc biệt. Chúng ta phải kiểm tra xem tần số của bất kỳ một ký tự nào có nhiều hơn một nửa độ dài của chuỗi hay không.

Vì vậy, nếu đầu vào là s =​​"CC * Ca5 &CC", thì đầu ra sẽ là True vì tần số của 'C' là 5 và độ dài của chuỗi là 9. (5> 9/2).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • freq:=một bản đồ chứa tần số của các ký tự s
  • đối với mỗi ch trong freq, thực hiện
    • nếu tần số của ch> (kích thước của s / 2), thì
      • trả về True
  • trả về Sai

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

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

Đầu vào

"CC*Ca5&CC"

Đầu ra

True