输入一段文章,输出最高频与次高频的单词(全部小写,逗号分隔)。文章中仅出现空格,逗号和句号这三种分隔符。
不考虑频率一致的情况。忽略大小写。
输入:I am a student.I come from XiDian,I love XiDian.
输出: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; }
时间: 2024-11-10 11:18:47