某一天,26个小写的英文字母争论了起来,它们都想当老大,闹得不可开交。这时逗比的小甲想到了一个好办法使它们平息了下来,规则是这样的:读入一行仅由小写英文字母组成的字符串,统计这26个小写英文字母在这串字符中出现的次数,谁出现的此数多谁就是老大。另外,没有出现在这串字符中的小写英文字母就只能甘拜下风了。虽然这种办法对有些字母有些不公平,但是大家还是硬着头皮接受了。那么好了,现在问题来了,聪明的你就编道程序帮它们解决吧。
标签:
某一天,26个小写的英文字母争论了起来,它们都想当老大,闹得不可开交。这时逗比的小甲想到了一个好办法使它们平息了下来,规则是这样的:读入一行仅由小写英文字母组成的字符串,统计这26个小写英文字母在这串字符中出现的次数,谁出现的此数多谁就是老大。另外,没有出现在这串字符中的小写英文字母就只能甘拜下风了。虽然这种办法对有些字母有些不公平,但是大家还是硬着头皮接受了。那么好了,现在问题来了,聪明的你就编道程序帮它们解决吧。
一行仅由小写英文字母组成的字符串,不包含其他的各类字符。
输出出现次数最多的字母和次数,如果出现次数相同则输出ASCII码大的
goodgoodstudydaydayup
d:5
AC代码:
#include <stdarg.h> #include <iostream> #include <math.h> #include <iomanip> #include <cctype> #include <cstring> #include <algorithm> using namespace std; int main(){ string s; while(cin>>s){ int len=s.length(); int p[26],t[26],z; memset(p,0,sizeof(p)); memset(t,0,sizeof(t)); for(int i=0;i<len;i++){ if(islower(s[i])){ z=s[i]-96; p[z]++; } } int max=-111,oo=0; for(int i=0;i<26;i++){ if(p[i]>max){ max=p[i]; oo=i; } } sort(p,p+26); char c; cout<<(c=oo+96+'\0')<<":"<<p[25]<<'\12'; } return 0; }
标签:
原文地址:http://blog.csdn.net/zp___waj/article/details/46121375