设计一个算法,统计输入字符串中各个不同字符出现的频度。设字符串中的合法字符为‘A’~‘Z’这26个字母和‘0’~‘9’这10个数字(串的存储结构自行选择)
时间: 2024-05-08 18:22:26 浏览: 69
可以使用散列表(哈希表)来统计每个字符出现的频度。
具体实现步骤如下:
1. 创建一个长度为 36 的数组,分别对应26个字母和10个数字,用来存储每个字符出现的频度。
2. 遍历输入字符串的每个字符,判断其是否为合法字符。如果是,就在对应的数组位置上加 1。
3. 最后遍历数组,输出每个字符及其出现的频度。
代码实现示例:
```python
def count_frequency(s):
freq = [0] * 36 # 初始化频度数组
for c in s:
if c.isalpha():
index = ord(c.upper()) - ord('A')
elif c.isdigit():
index = ord(c) - ord('0') + 26
else:
continue
freq[index] += 1 # 统计频度
# 输出结果
for i in range(26):
print(chr(i + ord('A')), ':', freq[i])
for i in range(10):
print(chr(i + ord('0')), ':', freq[i+26])
# 测试代码
s = 'AaBbCc0123456789'
count_frequency(s)
```
输出结果为:
```
A : 2
B : 2
C : 2
D : 0
E : 0
F : 0
G : 0
H : 0
I : 0
J : 0
K : 0
L : 0
M : 0
N : 0
O : 0
P : 0
Q : 0
R : 0
S : 0
T : 0
U : 0
V : 0
W : 0
X : 0
Y : 0
Z : 0
0 : 1
1 : 1
2 : 1
3 : 1
4 : 1
5 : 1
6 : 1
7 : 1
8 : 1
9 : 1
```
阅读全文