题解 | #单词识别#

单词识别

http://www.nowcoder.com/practice/16f59b169d904f8898d70d81d4a140a0

思路是先截取单词,通过map记录单词个数,再转存vector进行排序。

using namespace std;
typedef pair<string,int> Word;
bool cmp(Word w1,Word w2)
{
    return w1.second>w2.second;
}
int main()
{
    map<string,int> mp;
    string s;
    while(getline(cin,s))
    {
        for(int i=0,j=0;i<s.size();i++)
        {
            if(s[i]==' '||s[i]=='.')
            {
                string t=s.substr(j,i-j);
                if(isupper(t[0]))
                    t[0]=tolower(t[0]);
                j=i+1;
                mp[t]++;
            }
        }
        vector<Word> v(mp.begin(),mp.end());
        sort(v.begin(),v.end(),cmp);
        for(int i=0;i<v.size();i++)
            cout<<v[i].first<<":"<<v[i].second<<endl;
    }
    return 0;
}

全部评论
太厉害了,这就是我期末想不出来的题
1 回复 分享
发布于 2022-02-28 16:50

相关推荐

青春运维少年不会梦到...:实习大王
点赞 评论 收藏
分享
ResourceUt...:楼主有自己的垃圾箱,公司也有自己的人才库
点赞 评论 收藏
分享
评论
6
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务