POJ 2742 统计字符数
- 时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
- 判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多
- 输入
- 第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串
每组测试数据之间有一个空行,每行数据不超过1000个字符且非空 - 输出
- n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符 - 样例输入
-
2abbcccadfadffasdf
- 样例输出
-
c 3f 4
(1)、源代码:
#include <stdio.h>
#include <string.h>
int main( )
{
int cases, sum[26], i, max;
char str[1001];
scanf("%d", &cases);
while (cases > 0) {
scanf("%s", str);
for(i = 0; i < 26; i++)
sum[i]=0;
for(i = 0; i < strlen(str); i++)
sum[str[i] - 'a']++;
max = 0;
for( i = 1; i < 26; i++)
if (sum[i] > sum[max]) max = i;
printf("%c %d\n", max+'a', sum[max]);
cases--;
}
return 0;
}
#include <string.h>
int main( )
{
int cases, sum[26], i, max;
char str[1001];
scanf("%d", &cases);
while (cases > 0) {
scanf("%s", str);
for(i = 0; i < 26; i++)
sum[i]=0;
for(i = 0; i < strlen(str); i++)
sum[str[i] - 'a']++;
max = 0;
for( i = 1; i < 26; i++)
if (sum[i] > sum[max]) max = i;
printf("%c %d\n", max+'a', sum[max]);
cases--;
}
return 0;
}
(2)、解题思路:略
(3)、可能出错:略
浙公网安备 33010602011771号