牛客网题解 | 单词识别

单词识别

一、题目链接

单词识别

二、题目

三、代码

cpp 复制代码
#include <iostream>
using namespace std;
#include <string>
#include <map>
#include <set>
typedef pair<string, int> Word;
class Compare 
{
  public:
    bool operator()(const Word& left, const Word& right) const 
    {
        // 次数从大到小排序
        // 如果次数相同,再按照单词字典序排序
        return (left.second > right.second) ||
               (left.second == right.second && left.first < right.first);
    }
};
int main() 
{
    string s;
    while (getline(cin, s)) 
    {
        map<string, int> m;
        string temp;

        // 分割单词,采用map统计每个单词出现的次数
        for (size_t i = 0; i < s.size(); ++i) 
        {
            if (s[i] == ' ' || s[i] == ',' || s[i] == '.') 
            {
                // 一个单词解析结束
                if (temp != "")
                    m[temp]++;
                temp = "";
            } 
            else 
            {
                // 注意:题目已说明不区分大小写,那么A和a算是一个单词,故需要将大小写统一
                temp += tolower(s[i]);
            }
        }

        // 将map中的<单词,次数>放到set中,并按照次数升序,次数相同按照字典序规则排序
        set<Word, Compare> s(m.begin(), m.end());

        // 将本次统计到的结果按照要求输出
        for (auto& e : s)
            cout << e.first << ":" << e.second << endl;
        cout << endl;
    }
    return 0;
}
相关推荐
leoufung4 分钟前
LeetCode 76:Minimum Window Substring 题解与滑动窗口思维详解
算法·leetcode·职场和发展
其实防守也摸鱼7 分钟前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
小O的算法实验室17 分钟前
2026年IEEE TETCI,山区环境下基于双种群进化的协同无人机巡逻任务协同优化,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
A7bert77725 分钟前
【YOLOv8pose部署至RDK X5】模型训练→转换bin→Sunrise 5部署
c++·python·深度学习·yolo·目标检测
生成论实验室37 分钟前
《事件关系阴阳博弈动力学:识势应势之道》第二篇:阴阳博弈——认知的动力学基础
数据结构·人工智能·科技·神经网络·算法
li1670902701 小时前
第二十七章:智能指针
c语言·数据结构·c++·visual studio
风筝在晴天搁浅1 小时前
字节高频题 小于n的最大数
算法
LabVIEW开发1 小时前
LabVIEW水力机组空蚀在线监测
算法·labview·labview知识·labview功能·labview程序
AI科技星1 小时前
科幻艺术书本封面:《全域数学》第一部·数术本源 第三卷 代数原本(P95-141)完整五级目录【乖乖数学】
算法·机器学习·数学建模·数据挖掘·量子计算
风筝在晴天搁浅1 小时前
LeetCode 92.反转链表Ⅱ
算法·leetcode·链表