当前位置: 首页 > news >正文

牛客 KY264 单词识别

 输入一个英文句子,把句子中的单词(不区分大小写)按出现次数按从多到少把单词和次数在屏幕上输出来,次数一样的按照单词小写的字典序排序输出,要求能识别英文单词和句号。

#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
class Compare
{
public:bool operator()(const pair<const string, int>& a1, const pair<const string, int>& a2){return a1.second > a2.second || (a1.second == a2.second && a1.second < a2.second);//仿函数true是不改,所以>与<与降序/升序对应}
};
inline void switCapital(string& str)
{if (str[0] >= 'a' && str[0] <= 'z'){str[0] -= 32;}else{str[0] += 32;}
}
int main()
{vector<string> str;string mid_str;int i = 0;while (cin >> i){if (i == 9)break;}while (cin >> mid_str)//cin  1.空白符:读到空白符会停下,并将缓冲区的空白符抛弃,下一个继续读\2.cin会每次开始会重置变量,可以一直使用,自动清理{str.push_back(mid_str);if (mid_str.back() == '.'){str.back().erase(str.back().end() - 1, str.back().end());break;}//mid_str.clear();}map<string, int> str_map;for (string& _str : str){string str_mid(_str);switCapital(str_mid);if (str_map.find(str_mid) != str_map.end()){int times = (*(str_map.find(str_mid))).second;if (_str[0] >= 'a' && _str[0] <= 'z'){str_map.erase(str_mid);str_map[_str] += times + 1;}else{str_map[str_mid] ++;}}elsestr_map[_str]++;}vector<pair<string, int>> randvec;//为什么pair<const string,int>不行,sort那会报错不能=,因为sort交换时要用=复制,pair调用内部类型=,const string不允许//用其他容器接收map里的pair,用非const接收,除非不想复制/排序//map内部是会修饰成const key,vakue的randvec.reserve(str_map.size());for (pair<string, int> p : str_map){randvec.push_back(p);}sort(randvec.begin(), randvec.end(), Compare());//算法库的sort要随机迭代器的开始和结尾,一个比较器仿函数可传可不传,默认升序for (auto& p : randvec){cout << p.first << ":" << p.second << endl;}return 0;
}


http://www.mrgr.cn/news/45599.html

相关文章:

  • 解析Vue源码中是如何进行模版编译的
  • 【代码随想录Day37】动态规划Part06
  • 电影《749局》路演 苗苗演绎超能力少女分享幕后故事
  • JavaScript的内置对象有哪些?
  • Java基础(上)
  • 【牛客刷题实战】BC119 最高分与最低分之差
  • 开通商家转账到零钱技巧
  • 支持向量机SVM
  • cuda内存种类
  • Ubuntu2404配置本地离线源
  • 流浪地球行星发动机
  • HTB:Tactics[WriteUP]
  • C++——STL简介
  • 文件内容提取:Apache Tika 2.9.2
  • 有哪些工具可以辅助特定方法来提升DFT ATPG的coverage?
  • 26.删除有序数组中的重复项
  • vue3 对 vue2 有什么优势
  • 计组体系软考题2-计算机组成原理与计算机体系结构概论
  • Spring JDBC - Spring JDBC模版使用
  • 【C语言】指针和数组的内存使用详解