字母统计
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个。
-
输入
-
第一行输入一个正整数T(0<T<25)
随后T行输入一个字符串s,s长度小于1010。
输出
- 每组数据输出占一行,输出出现次数最多的字符; 样例输入
-
3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
样例输出
-
a a j
来源
- [路过这]原创 上传者
问题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=241
问题分析:
老套路将字母的ASCII码值和其对应的个数对应起来,然后直接找最大的。
代码:
#include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <vector> #include <queue> #include <stack> #include <map> #include <string> #include <algorithm> #include <iomanip> #define MAX 26 using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char** argv) { /*freopen("file/input.txt","r",stdin); freopen("file/output.txt","w",stdout);*/ int t; scanf("%d",&t); getchar(); while(t--){ int num[MAX]; memset(num,0,sizeof(num)); char tmp; int max=-1; int ans; scanf("%c",&tmp); while(tmp != '\n'){ num[tmp-'a']++; scanf("%c",&tmp); } for(int i=0;i<MAX;i++){ if(num[i]>max){ max=num[i]; ans=i; } } printf("%c\n",ans+'a'); //getchar(); } return 0; }
-
第一行输入一个正整数T(0<T<25)