字符统计
Posted wuyi_all_in
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符统计相关的知识,希望对你有一定的参考价值。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
string str;
while(cin>>str)
vector<int>count(256,0);
int max=0;
for(int i=0;i<str.size();i++)
count[str[i]]++;
if(count[str[i]]>max)
//遍历完一次之后,max就是当前字符中出现的次数最多的
max=count[str[i]];
while(max)
for(int i=0;i<256;i++)
//从头到尾依次遍历,依次打印出数量为max的字符,解决了数量大小一致按照ASII码从小到大排序输出
if(count[i]==max)
printf("%c",i);
max--;
printf("\\n");
return 0;
错误代码,有待改善
#include<iostream>
#include<string>
#include<map>
#include<queue>
#include<functional>
using namespace std;
bool mycmp(pair<int,char>a,pair<int,char>b)
if(a.first>b.first)
return false;
else if(a.first==b.first)
if(a.second<b.second)return false;
else return true;
else return true;
int main()
map<char,int>record_1;
string str;
priority_queue<pair<int,char>,vector<pair<int,char>>,function<bool(pair<int,char>,pair<int,char>)>>record_2(mycmp);
//priority_queue<pair<int,char>>record_2;
while(cin>>str)
cout<<str.size();
for(char a:str)
record_1[a]++;
for(auto b:record_1)
record_2.push(b.second,b.first);
pair<int,char>used=0,0;
while(record_2.size()!=0)
auto res=record_2.top();
cout<<res.second;
record_2.pop();
cout<<endl;
以上是关于字符统计的主要内容,如果未能解决你的问题,请参考以下文章