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

假设我们有一个包含小写、大写、数字和特殊字符的字符串 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
猜你喜欢