计蒜客-求出现次数最多的字符

来源:互联网 发布:大乐透出号绝密算法 编辑:程序博客网 时间:2024/06/08 10:51

  一个字符串中可能包含a~z中多个字符串,并且可能会有重复,如 String data ="abcdaaa",这道字符串出现次数醉倒的字母就是a,出现了4次。现在用户输入一个字符串,我们需要求出出现次数最多的字母,并且求出次数,如果存在字母中出现最多的次数不唯一,但所有出现次数最多的字母及次数都要打印出来。

输入

  输入是一行字符串,就是我们所需统计的字符串,例如我们输入 “abcabd”

输出

  输出是出现次数最多的字母以及出现次数,二者用空格分开,如果出现最多次数的字母不唯一,按照字母在字符串中出现的顺序,把所有结果打印出来,用换行符将每一行的字母和次数分开

样例输入

   abcabd
样例输出

   a 2   b 2
解题思路

  其实这道题和CCF13年12月的第一题很像,不过那道题让统计的是数字出现次数最多的数,这个是统计字母,思路基本都差不多,有兴趣可以做一下CCF这道题(CCF-201312-1-出现次数最多的数)。言归正传,这道题解题并不算难,采用map映照容器插入键值和数据,比较数据的大小然后输出最大的键值和数据即可。

代码如下

#include <iostream>#include <string>#include <map>using namespace std;int main(){map <char,int> m;int v;string s;cin>>s;int i,j,k;char a;for(i=0;i<s.length();i++){k=0;a=s[i];for(j=0;j<s.length();j++){if(a==s[j])    k++;}m[a]=k;}char max;int count=0;map <char,int>::iterator it;for(it=m.begin();it!=m.end();it++){if(it->second>count){max=it->first;count=it->second;}}for(it=m.begin();it!=m.end();it++){if(it->second==count)cout<<it->first<<" "<<count<<endl;}return 0;} 


阅读全文
0 0
原创粉丝点击