检查 Python 中任何字符的频率是否超过字符串长度的一半
假设我们有一个包含小写字母、大写字母、数字和特殊字符的字符串 s。我们需要检查是否存在任何一个字符的频率超过字符串长度的一半。
因此,如果输入类似于 s = "CC*Ca5&CC",则输出将为 True,因为 'C' 的频率为 5,字符串长度为 9。(5 > 9/2)。
为了解决这个问题,我们将遵循以下步骤:
- freq := 包含 s 字符频率的映射
- 对于 freq 中的每个 ch,执行以下操作:
- 如果 ch 的频率 > (s 的大小 / 2),则
- 返回 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
广告