Cho chuỗi s chứa chữ thường, hoa, số, ký tự đặc biệt. Kiểm tra xem có ký tự nào xuất hiện nhiều hơn một nửa độ dài chuỗi hay không.
Ví dụ: "CC*Ca5&CC" → độ dài 9, ký tự 'C' xuất hiện 5 lần > 4.5 → True.
Giải thuật
- Đếm tần suất mỗi ký tự (dùng
defaultdict). - Duyệt các tần suất, nếu có tần suất >
len(s)//2→True.
Mã ví dụ
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