字母统计
时间限制:3000 ms | 内存限制:65535 KB
难度:1
- 描述
- 现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个。
- 输入
- 第一行输入一个正整数T(0<T<25)
随后T行输入一个字符串s,s长度小于1010。 - 输出
- 每组数据输出占一行,输出出现次数最多的字符;
- 样例输入
-
3 abcd bbaa jsdhfjkshdfjksahdfjkhsajkf
- 样例输出
-
a a j
- 来源
- [路过这]原创
- 做这道题是我出现了一个百年不见的问题,竟然内存不能读取,当输入n是,却只能输入n-1组数据。我之前是让啊a[i]=0;后来我才改了回来,结果也就对了。此题不难就是找出最大字母数,用两个循环就可以解决了。
-
#include<stdio.h> #include<string.h> int main() { int n,i,j,k,l,max; char a[1020]; char c; scanf("%d",&n); while(n--) { max=0; scanf("%s",a); l=strlen(a); for(i=0;i<l;i++) { if(a[i]!='0') { k=1; for(j=i+1;j<l;j++) { if(a[i]==a[j]) { k++; a[j]='0'; } } if(max<k) { max=k; c=a[i]; } if(max==k) { if(c>a[i]) c=a[i]; } } } printf("%c ",c); } return 0; }