用C实现:输入描述 统计字母出现次数,并按照字母顺序输出 例如:aabcd,a出现2次,其他字母出现1次,输出a2b1c1d1 如果某个字母没有出现过,打印这个字母 例如:aacd,a出现2次,b没有出现,输出a2c1d1 字符类型限定为26个小写字母,不会出现其他字符。 使用python的dict便于统计字符个数。 输出描述 在一行中按照字母顺序输出字母及出现的次数。 样例数据 输入样例 aabcd 输出样例 a2b1c1d1
时间: 2024-02-15 17:06:00 浏览: 95
The Burrows-Wheeler Algorithm - Daniel Schiller (August 5th, 2012)-计算机科学
好的,以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100 // 最大字符串长度
#define ALPHABET_SIZE 26 // 字母表大小
int main() {
char str[MAX_N];
int count[ALPHABET_SIZE] = {0}; // 统计每个字母出现的次数
scanf("%s", str);
int n = strlen(str);
for (int i = 0; i < n; i++) {
count[str[i] - 'a']++; // 统计每个字母出现的次数
}
for (int i = 0; i < ALPHABET_SIZE; i++) {
if (count[i] > 0) { // 如果这个字母出现过,输出它的次数
printf("%c%d", 'a' + i, count[i]);
} else { // 如果这个字母没出现过,输出它的名称和次数 0
printf("%c%d", 'a' + i, 0);
}
}
printf("\n");
return 0;
}
```
代码的逻辑比较简单,首先定义一个 int 数组 count,用于统计每个字母出现的次数。然后读入一个字符串,遍历字符串中的每个字符,将它们映射到 count 数组中的对应位置,统计每个字母出现的次数。最后遍历一遍整个字母表,将每个字母和它的出现次数输出。如果这个字母没有出现过,输出它的名称和次数 0。
阅读全文