D9357. 统计字符数
时间限制:1.0s 内存限制:256.0MB
试题来源:北大先修课 编程练习(字符串)-1
问题描述
判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多
输入格式
第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串
每组测试数据之间有一个空行,每行数据不超过1000个字符且非空
输出格式
n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符
样例输入
2
abbccc
adfadffasdf
样例输出
c 3
f 4
编译语言
C++
源代码
#include<cstdio>
#include<cstring>
using namespace std;
int a[26];
char str[1000];
int main()
{
int i,c,max;
scanf("%d",&c);
while(c--)
{
scanf("%s",str);
for(i=0;i<26;i++) //桶要清0
a[i]=0;
for(i=0;i<strlen(str);i++)
{
a[str[i]-'a']++; //str[i]-'a'是字母的序号
}
max=0; //max要清0
for(i=0;i<26;i++)
{
if(a[i]>a[max]) //max存下标
max=i;
}
printf("%c,%d\n",max+'a',a[max]);
}
}