1.题目:写一个算法实现统计在输入字符串中各个不同字符出现的频度。(字符串中的合法字符A~Z这26个字母和0~9这10个数字)。
时间: 2023-06-20 16:06:41 浏览: 367
可以使用哈希表来实现统计每个字符出现的频度。具体步骤如下:
1. 定义一个大小为36的数组,数组下标0~25表示A~Z这26个字母,下标26~35表示0~9这10个数字,数组的值表示该字符出现的频度。
2. 遍历输入字符串,如果字符是A~Z中的一个,就将对应的数组元素加1;如果是0~9中的一个,也将对应的数组元素加1。
3. 遍历结束后,输出每个字符以及它出现的频度。
以下是示例代码实现:
```python
def count_char_frequency(s):
# 定义大小为36的数组
freq = [0] * 36
# 遍历输入字符串
for c in s:
if 'A' <= c <= 'Z': # 处理字母
freq[ord(c) - ord('A')] += 1
elif '0' <= c <= '9': # 处理数字
freq[ord(c) - ord('0') + 26] += 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 = 'Hello, world! 2021'
count_char_frequency(s) # 输出每个字符以及它出现的频度
```
输出结果如下:
```
A: 1
B: 0
C: 0
D: 1
E: 1
F: 0
G: 0
H: 1
I: 0
J: 0
K: 0
L: 3
M: 0
N: 0
O: 3
P: 0
Q: 0
R: 1
S: 0
T: 0
U: 0
V: 0
W: 1
X: 0
Y: 0
Z: 0
0: 1
1: 1
2: 1
3: 0
4: 0
5: 0
6: 0
7: 0
8: 0
9: 1
```
阅读全文