假设我们有一个包含小写、大写、数字和特殊字符的字符串 s。我们必须检查任何一个字符的频率是否超过字符串长度的一半。
因此,如果输入类似于 s = "CC*Ca5&CC",那么输出将为 True,因为 'C' 的频率为 5,字符串的长度为 9。(5 > 9/2)。
为了解决这个问题,我们将按照以下步骤操作 -
freq := 包含 s 字符频率的映射
对于频率中的每个 ch,执行
返回true
如果 ch 的频率 >(s / 2 的大小),则
返回false
让我们看看以下实现以获得更好的理解 -
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