字母统计 http://acm.nyist.net/JudgeOnline/problem.php?pid=241

 

字母统计

时间限制: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\n",c);
	}
	return 0;
}

 

posted @ 2013-08-05 19:21  王莜轩  阅读(251)  评论(0编辑  收藏  举报