首页 > 代码库 > 华为机试—单词计数
华为机试—单词计数
输入一段文章,输出最高频与次高频的单词(全部小写,逗号分隔)。文章中仅出现空格,逗号和句号这三种分隔符。
不考虑频率一致的情况。忽略大小写。
输出:i,xidian
#include<iostream> #include<string> #include<map> #include<cctype> using namespace std; int main(int argc, char *argv[]) { string s; map<string,int>m; while(getline(cin,s)!=NULL) { string t; for(int i=0;i<s.size();++i) { if(s[i]==' '||s[i]==','||s[i]=='.') { m[t]+=1; t=""; } else t+=s[i]; } } int first=0,second=0; string s1,s2; for(map<string,int>::iterator it=m.begin();it!=m.end();++it) { if(it->second>first) { s1=it->first; first=it->second; } if(it->second>second&&it->second<first) { s2=it->first; second=it->second; } } for(int i=0;i<s1.size();++i) { cout<<(char)tolower(s1[i]); } cout<<","; for(int i=0;i<s2.size();++i) { cout<<(char)tolower(s2[i]); } cout<<"\n"; return 0; }
华为机试—单词计数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。