文章目录

  • 题目分析
  • 题目链接

题目分析


题目重述:统计含有空格的字符串,切分出出现次数最多的单词。

题目分析:

读入:读入一行,包括空格,使用getline(cin,str);
处理:

  1. 先遍历str,使用函数tolower()把大写英文字母变成小写。
  2. 切分出来单词,存放进hash table。
  3. 遍历hash table 选择出现次数最大的,注意次数相等时输出字典序小的。

需要注意的时候:进行hash表映射的时候,需要确保hash1[tmp]++;这里的tmp需要合法(非空等),==如果它是空的,后面就会错误。
ac代码

#include<bits/stdc++.h>
using namespace std;int main()
{string str;getline(cin, str);unordered_map<string, int> hash1;string tmp,tmp1;//整体变成小写字母for(auto c:str){tmp1.push_back(tolower(c));}str =tmp1;//切分单词for(auto c: str){if( c>='0'&& c<='9'|| c>='a'&& c<='z'){tmp+=c; //tmp用来保留切分出来的单词}else{if(tmp.size())  //如果tmp不空,可以进行hash映射  !!!!这里不加判断会错!!!!hash1[tmp]++;tmp.clear(); //映射完清空,供下一次使用}}if(tmp.size()) hash1[tmp]++;  //判断最后是不是一个合法的“单词”,是的话也要进行映射//得到答案string res;int cnt = -1;for (auto item : hash1){if (item.second > cnt || (item.second == cnt && item.first < res)){res = item.first;cnt = item.second;}}cout << res << ' ' << cnt << endl;return 0;
}

题目链接

PAT甲级1071 Speech Patterns

PAT甲级1071 Speech Patterns :[C++题解]字符串哈希相关推荐

  1. PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...

  2. PAT甲级1061 Dating:[C++题解]字符串处理(C语言格式控制牛逼!)

    文章目录 题目分析 题目链接 题目分析 题意重述:四个字符串,前两个字符串是一组:求 日期和小时: 后两个字符串是一组:求分钟. 对于前两个字符串: 需要统计两次,位置相同并且是相同的字符. 第一个符 ...

  3. PAT甲级1035 Password:[C++题解]字符串修改

    文章目录 题目分析 题目链接 题目分析 题目重述: 题目分析: 把需要更改的字母和对应的字母分别存在string中,两者下标索引要对应. 采用 vector来存储< string, string ...

  4. 【题意+分析】1071 Speech Patterns (25 分)_27行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 People often have a preference among synonyms of the same word. F ...

  5. PAT甲级1029 Median:[C++题解]贪心、二路归并

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 如果直接排序,时间复杂度是O(nlogn),n=2∗105O(nlogn),\ n=2*10^5O(nlogn), n=2∗105会 ...

  6. PAT甲级1070 Mooncake:[C++题解]贪心

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 对单件从高到低排序. 需要注意的是总需要量d设成double,不要设成int. ac代码 #include<bits/stdc ...

  7. PAT甲级1008 Elevator:[C++题解]模拟

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:统计上升次数.下降次数:停留次数就是n.然后算数即可. ac代码 #include<bits/stdc++.h> usin ...

  8. PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 本题建立hash表是利用只具有正增量的二次探测法来解决冲突, 索引 = 数 % 哈希表的大小 如果映射到同一个索引idx,hash表 ...

  9. PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数

    文章目录 题目分析 题目链接 题目分析 分析:求单源最短路,使用dijkstra()算法. 最短路的条数,和最短路中 人数最多的一条,输出最多人数. 本题点比较少,使用邻接矩阵d[N][N]来存. a ...

最新文章

  1. 5G NGC — 关键技术 — 网络切片 — 切片的运维与运营
  2. java创建集合有的不用泛型_为什么在Java泛型右手边的集合类型没有任何影响?...
  3. Torchlight(火炬之光)人物骨骼动画
  4. Python让你成为AI 绘画大师,简直太惊艳了!(附代码)
  5. C++:DFS求最优路径
  6. Flutter使用简报
  7. php 5.3 include 上层 function,php5.3开始出现的Function ereg() is deprecated Error问题解决办法...
  8. IOS11降级到IOS10的操作方法(刷机有风险,操作需谨慎)
  9. java ws_java / javaw / javaws之间的区别
  10. 道指30只成分股的股价及历史股价抓取分析
  11. 清洁机器人--屏幕显示方案之屏幕的那些事
  12. java环境配好后jar文件打开闪退,无打开方式,无反应
  13. 根据线索整理的一套在2021年继续使用Flash Player的方法(20.12.29更新)
  14. 青龙自动薅羊毛—【万年历】秒到
  15. 用the_excerpt处理中文文章字数限制的方法
  16. 计算机电缆zr djypv,阻燃计算机电缆ZR-DJYPV
  17. Python机器学习基础教程(1)Irises(鸢尾花)分类之新手上路
  18. WHM不可不说的几件事?
  19. 来说一说毕达哥拉斯定理
  20. multisim14晶振在哪里_晶体谐振器在multisim中怎么找到

热门文章

  1. 使用phpize安装php模块
  2. Ffmpeg 定位文件(seek file)
  3. linux下测试宽带速度
  4. Linux搭建FTP
  5. posix自定义消息队列_消息队列开源框架,基于Io,节约服务器资源
  6. 怎么用计算机解开手机,怎么用电脑解开手机锁
  7. servlet获取jsp页面的值为null_Jsp挖掘(4)-打造自己的jsp防御代码
  8. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
  9. git 文件全部标红_git冲突解决,代码冲突、合并冲突。【IDEA版本】
  10. 【复习】服务器主板——Leez P710