华为机试—单词计数

来源:互联网 发布:gpt分区安装ubuntu 编辑:程序博客网 时间:2024/05/16 08:38

输入一段文章,输出最高频与次高频的单词(全部小写,逗号分隔)。文章中仅出现空格,逗号和句号这三种分隔符。

不考虑频率一致的情况。忽略大小写。


输入: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;}




0 0
原创粉丝点击