- 输入
- 第一行输入一个正整数T(0<T<25)
随后T行输入一个字符串s,s长度小于1010。
- 输出
- 每组数据输出占一行,输出出现次数最多的字符;
- 样例输入
-
3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
- 样例输出
-
a a j
-
解题思路:
-
本题的技巧,如下之处在于,可将每个字母出现的次数存在数组中,如下所示:
-
根据s【1】中所存字母出现次数的大小,即可得到出现次数最多的那个字母。需要注意的是,注意字母和数字之间的转化。并且,对于每个N,都应该将数组初始化为零(memset(s,0,sizeof(s));)。
-
程序代码:
-
#include<stdio.h> #include<string.h> int main() { int n,i; int s[26]={0}; char ch; scanf("%d",&n); getchar(); while(n--) { int max=0,t; memset(s,0,sizeof(s)); while(scanf("%c",&ch)&&ch!='\n') { //printf("%d ",ch - 'a'); s[ch-'a']++; } for(i=0;i<26;i++) { if(s[i]>max){ max = s[i]; t = i; } } //printf("max = %d,t = %d\n",max,t); printf("%c\n",t+'a'); } return 0; }
时间: 2024-10-12 10:21:19