HDU.1004 Let the Balloon Rise
原题
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;
|
定义一个string 到int 的映射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;
|
定义一个string 到int 的映射迭代器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相关推荐
- HDU 1004 Let the Balloon Rise (map)
题目链接 Problem Description Contest time again! How excited it is to see balloons floating around. But ...
- HDU 1004 Let the Balloon Rise
字典树(Trie) 题意是说找出最多的颜色.也就是找出出现次数最多的单词. 插入,然后遍历一遍把最多的输出就能够. #include<cstdio> #include<cstring ...
- 杭电HDU 1004 Let the Balloon Rise AC代码 简单题
题目很简单,大致意思是有多组测试数据,每组测试数据里找出出现次数最多的字符串,输入0结束.这个题没什么坑点,而且题目说了是唯一解. 用了结构体,algorithm里的sort函数就解决了,贴 C++的 ...
- HDOJ 1004 Let the Balloon Rise
2019独角兽企业重金招聘Python工程师标准>>> 開源中國寫的第一篇日誌 加油 水呀水 ,不過水壓不小,暈死,一晚上就死在了這裡, 回想一下這題真的真的不難 一開始是思路問題, ...
- 1004 Let the Balloon Rise
字符串处理题,这里用C风格字符串. 解这种模拟题,最好单独用一个文本用来"读题": 1.把字符串按行读入 2.对每个字符串映射一个计数变量count,初始化为0; 3.2维循环遍历 ...
- HDU 2607 Let the Balloon Rise II 水
很早写过的一个题目,又碰到了还是写一下- -,看好多大神都有二分查找过的,然后我感觉题目既然说了只有一个是奇数,那么根据异或规则可以把所以数字异或之后剩下的就是这个数字,查找一遍就好了. #inclu ...
- [HDU1004] Let the balloon rise - 让气球升起来
[HDU1004] Let the balloon rise - 让气球升起来 Description Contest time again! How excited it is to see bal ...
- hdu-1004 Let the Balloon Rise
题目来源:hdu-1004 Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- HDU - Let the Balloon Rise(STL)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1004 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
最新文章
- 使用hibernate建立mysql连接以及生成映射类和配置文件*.cfg.xml
- 深度协同过滤:用神经网络取代内积建模
- 信息系统 项目十大管理和五大过程
- 5G领域最权威绿宝书迎来中文版啦!
- C/C++排序算法(4)快速排序
- 16节课搞懂大数据,视频教程限时免费领取
- leetcode934.ShortestBridge
- python全栈薪资这么高,你知道大厂面试都问什么吗?
- 关于so文件你需要知道的知识
- 一文小入门pyQt5 —— 从零到一完成一个Excel文件处理程序
- VB显示透明FLASH效果
- React实战之React+Redux实现一个天气预报小项目
- 映美FP-530K+打印发票的各种经验
- 鼠标移上提示框 提示框不消失
- 最伟大的IT人物10强(转)
- 一款好用的应用程序打包工具
- HTML基础之创建简单表格
- 输入电阻值,计算出并联电阻、串联电阻
- 微型计算机原理与接口技术考研,微型计算机原理与接口技术
- Spotfire在文本区域添加自定义JavaScript代码的最佳实践
热门文章
- java如何使用while_java中的while(true)语句的用法是什么
- 解决ajax中ie缓存问题(手动添加时间戳)
- 美国计算机科学奥林匹克竞赛试题,中学信息奥林匹克竞赛试题精选.doc
- ios pan手势滑动消失动画_iOS仿抖音—评论视图滑动消失
- 实验5.6 定义包含5个元素的对象数组,每个元素都是Employee类型的对象
- Python考试基础知识
- ubuntu 16.04 官网版安装 caffe 步骤详解[CPU][紧跟官网,永不踩坑]
- 特殊乘法 [清华大学计算机研究生机试真题]
- 两个有序数组求中位数log(m+n)复杂度
- 树莓派教程 - 1.6 树莓派GPIO库wiringPi 外接USB串口ttyUSB ch340 cp2102