原题

HDU.1004 Let the Balloon Rise

分类

杂题

题意

找出一组序列中出现次数最多的字符串。

输入/输出 要求与格式
样例数的确定 最后一个样例输入字符串个数为0代表样例输入结束
每个样例的输入 第一行为字符串个数nnn,后nnn行为具体字符串
输出结果 出现次数最多的单词内容
输出格式 每个案例独占一行
特别说明 保证每个输入都有唯一解

以下是数据范围:

数据 数据范围
字符串个数 1≤n≤10001 \leq n \leq 10001≤n≤1000
字符串长度 1≤len(ai)≤151 \leq \text{len} \left( a_i \right) \leq 151≤len(ai​)≤15

题解

总体思路

思路 时间复杂度 具体解释
map\text{map}map容器 O(n)O \left( n \right)O(n) 把字符串内容作为key\text{key}key、出现次数作为value\text{value}value存进map\text{map}map容器中,最终遍历map\text{map}map容器找出最大值对应的键值

题解代码

HDU(C++/G++)AC代码如下:

#include <iostream>
#include <algorithm>
#include <string>
#include <map>using namespace std;int main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int N;map<string, int> mp;map<string, int>::iterator it;string s, st, res_s;int max_num;while (cin >> N, N){//初始化mapmp.clear();//数据接收、同时处理for (int i = 1; i <= N; ++i){cin >> s;++mp[s];}//初始化结果量max_num = 0;//遍历map找最大it = mp.begin();while (it != mp.end()){if (max_num < it->second){max_num = it->second;res_s = it->first;}++it;}//输出结果cout << res_s << endl;}return 0;
}

评价

这道题可以算是一道用来熟悉STL-map的题目吧。毕竟就算不用map\text{map}map,多半也是需要自己用数组来构建一下类似的逻辑,倒不如直接用系统库<map>来的香。

补充

在我看来,map\text{map}map容器很适合用于记录某样东西出现多少次,原因如下:

  • 访问方便,直接mp[键]就额可以访问其存储的次数信息。
  • 添加方便,对于之前未出现过的键值对,默认其值为0,出现新的元素直接mp[新键]++;即可视为添加一组键值对。

对于map\text{map}map容器的解释,往往是映射、键值对、字典,都比较好从字面上来理解。

下面补充一些map\text{map}map容器常用的使用方法:

操作 使用示例 示例解释
定义map\text{map}map容器 map<string, int> mp; 定义一个stringint的映射mp
访问元素 cout << mp["Test"] << endl; 输出字符串"Test"在mp中对应的值
添加/修改元素 mp["New"] = 6; 将字符串"New"在mp中对应的值设置为6
删除元素 mp.erase("Test"); 将字符串"Test"在mp中相应的键值对删除
元素个数 cout << mp.size() << endl; 输出容器mp中元素的个数
清空map\text{map}map容器 mp.clear(); 清空容器mp中所有元素
定义map\text{map}map迭代器 map<string, int>::iterator it; 定义一个stringint的映射迭代器it
指向map\text{map}map容器头部的迭代器 it = mp.begin(); 将迭代器it定位到容器mp的头部
指向map\text{map}map容器末尾的迭代器 it = mp.end(); 将迭代器it定位到容器mp的末尾
迭代器访问键 cout << it->first << endl; 输出迭代器it当前指向键值对的键
迭代器访问值 cout << it->second << endl; 输出迭代器it当前指向键值对的值

HDU.1004 Let the Balloon Rise相关推荐

  1. HDU 1004 Let the Balloon Rise (map)

    题目链接 Problem Description Contest time again! How excited it is to see balloons floating around. But ...

  2. HDU 1004 Let the Balloon Rise

    字典树(Trie) 题意是说找出最多的颜色.也就是找出出现次数最多的单词. 插入,然后遍历一遍把最多的输出就能够. #include<cstdio> #include<cstring ...

  3. 杭电HDU 1004 Let the Balloon Rise AC代码 简单题

    题目很简单,大致意思是有多组测试数据,每组测试数据里找出出现次数最多的字符串,输入0结束.这个题没什么坑点,而且题目说了是唯一解. 用了结构体,algorithm里的sort函数就解决了,贴 C++的 ...

  4. HDOJ 1004 Let the Balloon Rise

    2019独角兽企业重金招聘Python工程师标准>>> 開源中國寫的第一篇日誌 加油 水呀水 ,不過水壓不小,暈死,一晚上就死在了這裡, 回想一下這題真的真的不難 一開始是思路問題, ...

  5. 1004 Let the Balloon Rise

    字符串处理题,这里用C风格字符串. 解这种模拟题,最好单独用一个文本用来"读题": 1.把字符串按行读入 2.对每个字符串映射一个计数变量count,初始化为0; 3.2维循环遍历 ...

  6. HDU 2607 Let the Balloon Rise II 水

    很早写过的一个题目,又碰到了还是写一下- -,看好多大神都有二分查找过的,然后我感觉题目既然说了只有一个是奇数,那么根据异或规则可以把所以数字异或之后剩下的就是这个数字,查找一遍就好了. #inclu ...

  7. [HDU1004] Let the balloon rise - 让气球升起来

    [HDU1004] Let the balloon rise - 让气球升起来 Description Contest time again! How excited it is to see bal ...

  8. hdu-1004 Let the Balloon Rise

    题目来源:hdu-1004 Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...

  9. HDU - Let the Balloon Rise(STL)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...

最新文章

  1. 使用hibernate建立mysql连接以及生成映射类和配置文件*.cfg.xml
  2. 深度协同过滤:用神经网络取代内积建模
  3. 信息系统 项目十大管理和五大过程
  4. 5G领域最权威绿宝书迎来中文版啦!
  5. C/C++排序算法(4)快速排序
  6. 16节课搞懂大数据,视频教程限时免费领取
  7. leetcode934.ShortestBridge
  8. python全栈薪资这么高,你知道大厂面试都问什么吗?
  9. 关于so文件你需要知道的知识
  10. 一文小入门pyQt5 —— 从零到一完成一个Excel文件处理程序
  11. VB显示透明FLASH效果
  12. React实战之React+Redux实现一个天气预报小项目
  13. 映美FP-530K+打印发票的各种经验
  14. 鼠标移上提示框 提示框不消失
  15. 最伟大的IT人物10强(转)
  16. 一款好用的应用程序打包工具
  17. HTML基础之创建简单表格
  18. 输入电阻值,计算出并联电阻、串联电阻
  19. 微型计算机原理与接口技术考研,微型计算机原理与接口技术
  20. Spotfire在文本区域添加自定义JavaScript代码的最佳实践

热门文章

  1. java如何使用while_java中的while(true)语句的用法是什么
  2. 解决ajax中ie缓存问题(手动添加时间戳)
  3. 美国计算机科学奥林匹克竞赛试题,中学信息奥林匹克竞赛试题精选.doc
  4. ios pan手势滑动消失动画_iOS仿抖音—评论视图滑动消失
  5. 实验5.6 定义包含5个元素的对象数组,每个元素都是Employee类型的对象
  6. Python考试基础知识
  7. ubuntu 16.04 官网版安装 caffe 步骤详解[CPU][紧跟官网,永不踩坑]
  8. 特殊乘法 [清华大学计算机研究生机试真题]
  9. 两个有序数组求中位数log(m+n)复杂度
  10. 树莓派教程 - 1.6 树莓派GPIO库wiringPi 外接USB串口ttyUSB ch340 cp2102