写一个算法实现统计在输入字符串中各个不同字符出现的频度。(字符串中的合法字符A~Z这26个字母和0~9这10个数字)。
时间: 2024-05-01 11:23:41 浏览: 64
统计输入字符各个字母出现频率的解题思路
5星 · 资源好评率100%
可以使用一个长度为36的数组来记录每个字符出现的频率,数组下标0~25分别对应A~Z这26个字母,下标26~35分别对应0~9这10个数字。具体实现如下:
```python
def count_chars(s):
freq = [0] * 36 # 初始化频率数组
for c in s:
if c.isalpha(): # 如果是字母
freq[ord(c.upper()) - ord('A')] += 1 # 将字母转换为大写后减去A的ASCII码,作为下标
elif c.isdigit(): # 如果是数字
freq[ord(c) - ord('0') + 26] += 1 # 将数字减去0的ASCII码,作为下标
return freq
```
这个算法的时间复杂度为$O(n)$,其中$n$是输入字符串的长度。
阅读全文