PAT甲级1071 Speech Patterns :[C++题解]字符串哈希
文章目录
- 题目分析
- 题目链接
题目分析
题目重述:统计含有空格的字符串,切分出出现次数最多的单词。
题目分析:
读入:读入一行,包括空格,使用getline(cin,str);
处理:
- 先遍历str,使用函数
tolower()
把大写英文字母变成小写。 - 切分出来单词,存放进hash table。
- 遍历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++题解]字符串哈希相关推荐
- PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...
- PAT甲级1061 Dating:[C++题解]字符串处理(C语言格式控制牛逼!)
文章目录 题目分析 题目链接 题目分析 题意重述:四个字符串,前两个字符串是一组:求 日期和小时: 后两个字符串是一组:求分钟. 对于前两个字符串: 需要统计两次,位置相同并且是相同的字符. 第一个符 ...
- PAT甲级1035 Password:[C++题解]字符串修改
文章目录 题目分析 题目链接 题目分析 题目重述: 题目分析: 把需要更改的字母和对应的字母分别存在string中,两者下标索引要对应. 采用 vector来存储< string, string ...
- 【题意+分析】1071 Speech Patterns (25 分)_27行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 People often have a preference among synonyms of the same word. F ...
- PAT甲级1029 Median:[C++题解]贪心、二路归并
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 如果直接排序,时间复杂度是O(nlogn),n=2∗105O(nlogn),\ n=2*10^5O(nlogn), n=2∗105会 ...
- PAT甲级1070 Mooncake:[C++题解]贪心
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 对单件从高到低排序. 需要注意的是总需要量d设成double,不要设成int. ac代码 #include<bits/stdc ...
- PAT甲级1008 Elevator:[C++题解]模拟
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:统计上升次数.下降次数:停留次数就是n.然后算数即可. ac代码 #include<bits/stdc++.h> usin ...
- PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 本题建立hash表是利用只具有正增量的二次探测法来解决冲突, 索引 = 数 % 哈希表的大小 如果映射到同一个索引idx,hash表 ...
- PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数
文章目录 题目分析 题目链接 题目分析 分析:求单源最短路,使用dijkstra()算法. 最短路的条数,和最短路中 人数最多的一条,输出最多人数. 本题点比较少,使用邻接矩阵d[N][N]来存. a ...
最新文章
- 5G NGC — 关键技术 — 网络切片 — 切片的运维与运营
- java创建集合有的不用泛型_为什么在Java泛型右手边的集合类型没有任何影响?...
- Torchlight(火炬之光)人物骨骼动画
- Python让你成为AI 绘画大师,简直太惊艳了!(附代码)
- C++:DFS求最优路径
- Flutter使用简报
- php 5.3 include 上层 function,php5.3开始出现的Function ereg() is deprecated Error问题解决办法...
- IOS11降级到IOS10的操作方法(刷机有风险,操作需谨慎)
- java ws_java / javaw / javaws之间的区别
- 道指30只成分股的股价及历史股价抓取分析
- 清洁机器人--屏幕显示方案之屏幕的那些事
- java环境配好后jar文件打开闪退,无打开方式,无反应
- 根据线索整理的一套在2021年继续使用Flash Player的方法(20.12.29更新)
- 青龙自动薅羊毛—【万年历】秒到
- 用the_excerpt处理中文文章字数限制的方法
- 计算机电缆zr djypv,阻燃计算机电缆ZR-DJYPV
- Python机器学习基础教程(1)Irises(鸢尾花)分类之新手上路
- WHM不可不说的几件事?
- 来说一说毕达哥拉斯定理
- multisim14晶振在哪里_晶体谐振器在multisim中怎么找到
热门文章
- 使用phpize安装php模块
- Ffmpeg 定位文件(seek file)
- linux下测试宽带速度
- Linux搭建FTP
- posix自定义消息队列_消息队列开源框架,基于Io,节约服务器资源
- 怎么用计算机解开手机,怎么用电脑解开手机锁
- servlet获取jsp页面的值为null_Jsp挖掘(4)-打造自己的jsp防御代码
- android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
- git 文件全部标红_git冲突解决,代码冲突、合并冲突。【IDEA版本】
- 【复习】服务器主板——Leez P710