字母的争论

字母的争论

时间: 1ms        内存:128M

描述:

某一天,26个小写的英文字母争论了起来,它们都想当老大,闹得不可开交。这时逗比的小甲想到了一个好办法使它们平息了下来,规则是这样的:读入一行仅由小写英文字母组成的字符串,统计这26个小写英文字母在这串字符中出现的次数,谁出现的此数多谁就是老大。另外,没有出现在这串字符中的小写英文字母就只能甘拜下风了。虽然这种办法对有些字母有些不公平,但是大家还是硬着头皮接受了。那么好了,现在问题来了,聪明的你就编道程序帮它们解决吧。

输入:

一行仅由小写英文字母组成的字符串,不包含其他的各类字符。

输出:

输出出现次数最多的字母和次数,如果出现次数相同则输出ASCII码大的

示例输入:

goodgoodstudydaydayup

示例输出:

d:5

提示:

参考答案(内存最优[920]):

#include<stdio.h>
int main()
{
	char c;
	int a[200]={0},b,max=0,n;
	while((c=getchar())&&c>='a'&&c<='z')
	{
		b=c;
		a[b]++;
	}
	for(b='a';b<='z';b++)
	{
		if(a[b]>=max)
		{
			max=a[b];
			n=b;
		}
	}
	c=n;
	printf("%c:%d\n",c,max);
	return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
int main()
{
  int i,a[26]={0},temp=0,x;
	char ch;
	while((ch=getchar())!='\n')
		if(ch>='a'&&ch<='z')
			a[ch-'a']++;
	for(i=0;i<26;i++)
	{


        if(a[i]>temp)
        {temp=a[i];x=i;}
	}
			cout<<char('a'+x)<<":"<<temp;
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注