AOJ 767.统计字符数

225

题目


Description  


判断一个由a-z和A-Z字符组成的字符串中哪个字符出现的次数最多


Input  


第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z和A-Z字符组成的字符串,每组测试数据之间有一个空行,每行数据不超过1000个字符且非空


Output  


n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字
符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那
么输出ASCII码最小的那一个字符


Sample Input  


2
Abbccc
Adfadffasdf


Sample Output  


c 3
f 4


算法


读一遍,统计下即可

代码


/*
By:OhYee
Github:OhYee
Blog:http://www.oyohyee.com/
Email:oyohyee@oyohyee.com

かしこいかわいい?
エリーチカ!
要写出来Хорошо的代码哦~
*/
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <iostream>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <functional>
using namespace std;

const int INF = 0x7FFFFFFF;
const int maxn = 500;

int cnt[maxn];

void Do() {
memset(cnt,0,sizeof(cnt));
char c = getchar();
while(!((c >= 'a'&&c <= 'z') || (c >= 'A'&&c <= 'Z')))
c = getchar();
while((c >= 'a'&&c <= 'z') || (c >= 'A'&&c <= 'Z')) {
cnt[c]++;
c = getchar();
}
int ans,Max = 0;
for(int i = 0;i < maxn;i++) {
if(cnt[i] > Max) {
ans = i;
Max = cnt[i];
}
}
printf("%c %d\n",ans,Max);
}

int main() {
int T;
scanf("%d",&T);
while(T--)
Do();
return 0;
}
发布评论
  • 点击查看/关闭被识别为广告的评论