检查 Python 中任何字符的频率是否超过字符串长度的一半


假设我们有一个包含小写字母、大写字母、数字和特殊字符的字符串 s。我们需要检查是否存在任何一个字符的频率超过字符串长度的一半。

因此,如果输入类似于 s = "CC*Ca5&CC",则输出将为 True,因为 'C' 的频率为 5,字符串长度为 9。(5 > 9/2)。

为了解决这个问题,我们将遵循以下步骤:

  • freq := 包含 s 字符频率的映射
  • 对于 freq 中的每个 ch,执行以下操作:
    • 如果 ch 的频率 > (s 的大小 / 2),则
      • 返回 True
  • 返回 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

更新于: 2021年1月15日

152 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告