题解 | #单词识别#

单词识别

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

思路:使用两次map进行计数和排序,第一次map用来统计不同的单词出现的次数。注意最后一个单词要把'.'去掉,大写的字母要转换成小写的字母。
第二次的multimap用来将单词出现的次数按照降序排列,因为出现次数可能会有重复的所以这里使用multimap。同时降序排序需要回传一个仿函数greater

#include <iostream>
#include <string>
#include <map>
#include <functional>
using namespace std;

void to_uppercase(string& s)
{
    for( auto& e : s)
    {
        if(e >= 'A' && e <='Z')
        {
            e += 32;
        }
    }
}
int main() 
{
    string s;
    map<string,int> countmap;
    while( cin>> s)
    {
        if(s.back() == '.')
            s.pop_back();
        to_uppercase(s);
        countmap[s]++;
    }
    multimap<int,string,greater<int>> sortmap;
    for(auto& e : countmap)
    {
        sortmap.insert(make_pair(e.second,e.first));
    }
    auto it = sortmap.begin();
    while(it != sortmap.end())
    {
        cout<<it->second<<":"<<it->first<<endl;
        it++;
    }
}
全部评论

相关推荐

06-25 16:53
门头沟学院 Java
人力小鱼姐:简历可以直接用飞书模板 模拟面试可以试试ai,现在好多都还是免费阶段 像Sugar云面、多面鹅都不错,主要看面试后自己能不能复盘出有效信息
为了找工作你花了哪些钱?
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
把实习生当正职使昨天第一天就加班,晚上连口饭都没吃上,以后日子咋过,我不想干了
码农索隆:实习不怕忙,就怕干的活重复且没难度,要干就干那种有深度有难度的任务,这样才能快速的提升
实习吐槽大会
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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