给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。

输入格式:
输入首先给出正整数N(≤10​5​​ ),为通话记录条数。随后N行,每行给出一条通话记录。简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔。

输出格式:
在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔。如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并列狂人的人数。

输入样例:

4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832
13588625832 3

题目思路:
1.首先想到map映射,让对应的号码的个数作为second值,再考虑根据第二个值对map容器进行排序,这里需要注意,不能直接用sort函数进行排序,map是不能与sort匹配的。另外,map容器是对key值大小进行排序的,这题我们需要按照value的值的大小进行排序。
2.因此需要达到排序的目的,我们需要将map容器里的东西放到pair<key, value> 中,将pair<key, value> 作为vector的类型,此时就可以自定义mycmp函数,对当前的vector进行sort排序。如果看不懂就直接看代码,简单明了。
3.如果看不懂相关知识点,建议再学习一下相关的内容,因为这些东西是比较重要的。希望这篇文章能帮到你一些,有不懂的可以私信或者评论。

#include<iostream>
#include<string>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
map<string, int> mp;      //一开始存放数据的map容器
vector<pair<string, int>> vec;      //能够进行排序的vector容器,数据类型是pair<>
bool mycmp(pair<string, int>a, pair<string, int>b) { return a.second > b.second; };//自定义的比较函数
int main()
{int n, len;cin >> n;len = 2 * n;string s;for (int i = 0; i < len; i++)        //第一步把数据存到map容器中{cin >> s;mp[s]++;}     for (auto it = mp.begin(); it != mp.end(); it++)        //第二步,把map容器里的内容放到vector<pair<sting, int>>中vec.push_back(pair<string, int>(it->first, it->second));sort(vec.begin(), vec.end(), mycmp);      //排序int maxn = vec[0].second;int sum = 1;for (int i = 1; i < vec.size(); i++)       //查找聊天狂人有几个{if (vec[i].second == maxn)sum++;elsebreak;}if (sum == 1)                              //按照题目要求输出即可cout << vec[0].first << " " << vec[0].second << endl;elsecout << vec[0].first << " " << vec[0].second << " " << sum << endl;return 0;
}

电话聊天狂人 (25 分)(map映射 简单做法)相关推荐

  1. 7-14 电话聊天狂人 (25 分)map做法 + 详解 + 思路分析

    7-14 电话聊天狂人 (25 分)map做法 1:题目 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10 ​5 ​​ ),为通话记录条数.随后N行 ...

  2. 7-3 电话聊天狂人 (25 分)

    暑假字符串专题HBU程序设计训练营总结 ?点这里 7-3 电话聊天狂人 (25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为 ...

  3. 7-1 电话聊天狂人 (25分) PTA 数据结构

    7-1 电话聊天狂人 (25分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10 ​5 ​​ ),为通话记录条数.随后N行,每行给出一条通话记录. ...

  4. 5-14 电话聊天狂人 (25分)

    5-14 电话聊天狂人 (25分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤105≤ 10^5​​),为通话记录条数.随后N行,每行给出一条通话 ...

  5. 5-14 电话聊天狂人 (25分)/PTA

    5-14 电话聊天狂人   (25分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数NN(\le 10^5≤10​5​​),为通话记录条数.随后NN行,每 ...

  6. 11-散列1 电话聊天狂人 (25 分) (C语言)

    浙大版<C语言程序设计实验与习题指导(第3版)>题目集 11-散列1 电话聊天狂人 (25 分) 二.题解 c代码 11-散列1 电话聊天狂人 (25 分) 给定大量手机用户通话记录,找出 ...

  7. 7-14 电话聊天狂人 (25分) 【map】

    题目描述: 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和 ...

  8. 电话聊天狂人 (25 分)【简便解法】

    立志用最少的代码做最高效的表达 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10^5),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这 ...

  9. 11-散列1 电话聊天狂人 (25 分)

    给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的11位数字构成的 ...

  10. 7-14 电话聊天狂人 (25 分)

    给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​ ),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的1 ...

最新文章

  1. 一行代码解决对象数组排序(sort)
  2. 表单form类型数据转换为数组array
  3. mysql udf提权_MySQL日志安全分析技巧
  4. 判断是否获取到手机相机权限
  5. 牛客国庆集训派对day6TJ-DefenseTower【贪心】
  6. mysql 字符串取前缀_mysql截取字符串的函数总结
  7. Mysql库及表的基本概念、增删查改操作以及表的约束、多表联查
  8. 03:计算书费【一维数组】
  9. python课程开课吧怎么样-开课吧最新廖雪峰Python商业爬虫课程,全套完整课程资源下载...
  10. VMware Workstation12安装win 7企业版激活
  11. 广告化开发(基础知识)~广告效果指标CTR/CVR/ROI/ARPU的理解
  12. 语音信号处理的过程及其应用
  13. win7系统桌面计算机不见了,win7 64位旗舰版系统桌面上的计算机图标不见了
  14. 宏碁台式计算机u盘启动,Acer宏碁台式电脑怎么通过bios设置u盘启动
  15. edge里bing必应搜索不了解决办法
  16. C#命名规范(参考) (II)
  17. iTunes 12恢复.ipsw固件
  18. Linux构建一个deb软件安装包
  19. C++生日聚会(BFS)
  20. 12333提交显示服务器异常,掌上12333显示没有收到异地协助认证书什么原因_具体解决办法流程_3DM手游...

热门文章

  1. 程序员要么在变来变去中成长,要么在变来变去中被淘汰,要么主动去适应变来边去的事实...
  2. 第四季-专题8-LINUX系统调用
  3. 安装Cnario提示.Net 3.5安装错误, 检查Windows系统更新提示无法检查到更新, 安装.Net 3.5提示Windows无法完成请求的更改, 错误代码:0x800F081F...
  4. 隐式类型转换 与 隐式类型转换操作符
  5. linux之正则匹配命令学习笔记
  6. linux内存管理2:内存映射和需求分页(英文名字:demand Paging,又叫:缺页中断)【转】...
  7. 在Docker和Kubernetes上运行MongoDB微服务
  8. ASP.NET Razor - html中使用if else
  9. 解决升级PHP7后 微信公众号收不到消息
  10. Html5带来了什么?