题目
统计字符串中字符的出现频率
信息
- 类型:问答
- 难度:⭐
考点
哈希表基本操作,遍历字符串,频率统计
快速回答
使用哈希表(字典)统计字符串中每个字符的出现次数:
- 创建一个空字典
- 遍历字符串中的每个字符
- 若字符不在字典中,添加键并初始化值为1
- 若字符已存在,将其计数值加1
原理说明
哈希表(字典)通过键值对存储数据,能实现O(1)时间复杂度的查找和插入操作。统计字符频率时:
- 字符作为键(Key)
- 出现次数作为值(Value)
- 遍历字符串时实时更新哈希表
代码示例(Python)
def count_chars(s):
char_count = {} # 创建空字典
for char in s:
# 若字符存在则计数+1,否则初始化为1
char_count[char] = char_count.get(char, 0) + 1
return char_count
# 测试
print(count_chars("hello")) # 输出:{'h':1, 'e':1, 'l':2, 'o':1}最佳实践
- 使用
dict.get(key, default)方法避免KeyError异常 - 时间复杂度:O(n),n为字符串长度
- 空间复杂度:O(k),k为字符集大小(ASCII最多128)
常见错误
- 未初始化字典直接赋值导致KeyError
- 混淆字符大小写(如'H'和'h'会被视为不同字符)
- 未考虑空字符串或特殊字符的情况
扩展知识
- 哈希冲突:不同键映射到相同哈希值时发生,Python字典使用开放寻址法解决
- 应用场景:词频统计、重复字符检测、数据去重
- 变体问题:统计单词频率(需先分割字符串)或找出出现次数最多的字符