字母频率 题解:cpp 哈希表 所有字符统计频率
- #include<iostream>
- #include<string>
- #include<unordered_map>
- #include<cctype>
- using namespace std;
- //从键盘输入一个字符串(可能含有数字、字母、其他可见字符),
- //输出出现频率最高的英文字母及次数,忽略字母的大小写(如大写A和小写a均视为a)
- int main(){
- string s;
- getline(cin,s);
- unordered_map<char,int> mp;
- //去掉空格
- for(int i=0;i<s.size();i++){
- if(s[i]==' '){
- s.erase(s[i]);
- }
- }
- for(int i=0;i<s.size();i++){
- //先都转化为小写
- if(s[i]>='A'&&s[i]<='Z'){
- s[i]=tolower(s[i]);
- }
- mp[s[i]]++;
- }
- int max=0;char k;
- for(unordered_map<char,int>::iterator it=mp.begin();it!=mp.end();it++){
- if(it->second>max){
- max=it->second;
- k=it->first;
- }
- }
- cout<<k<<" "<<max;
- return 0;
- }
登录后发布评论
暂无评论,来抢沙发