题解 | #单词识别#

单词识别

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

#include <iostream>
#include<map>
#include <string>
#include <vector>
#include<algorithm>
using namespace std;

class Greater {
  public:
    bool operator()(pair<string, int> p1, pair<string, int> p2) {
        return p1.second > p2.second;
    }
};

int main() {
    string cinst;
    getline(cin, cinst);//cinst为句子
    map<string,int> countmap;
    //分隔为单词
    int i=0,j=0;
    while(i<cinst.size())
    {
        while(cinst[j]!=' '&&cinst[j]!='.')//找单词的位置,
        {
            j++;
        }
        string substr1=cinst.substr(i,j-i);
        if(i==0)
        {
            substr1[0]+=32;
        }
        countmap[substr1]++;
        i=++j;
    }
    //countmap已经统计好了次数(value),并按string(key)排序
    //现在开始放入vector中,再按照value排序
    vector<pair<string,int>> v1(countmap.begin(),countmap.end());
   stable_sort(v1.begin(),v1.end(),Greater());//按value;否则按pair
    //排完序后遍历输出
    for(pair<string,int> e:v1)
    {
        cout<<e.first<<':'<<e.second<<endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
昨天 17:22
已编辑
西安交通大学 Java
华为 昇腾 ai软件开发 薪资20k x (14-16),职级13A,5%公积金,c/cpp
BLOOMING7:闭眼滴滴,华子给的又少又累
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务