天池 在线编程 部门统计(哈希)

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

描述
公司给你提供了所有员工的信息,包括其ID,姓名和所属部门。
以及他们之间的朋友关系,每个关系中由2个ID组成,如 “1, 2” 代表1号员工和2号员工是朋友。
朋友关系不具有传递性,即B、C都是A的朋友,但B和C不一定是朋友。
请计算每个部门中与其它部门的员工有朋友关系的员工个数。

所有的输入中逗号后都跟有一个空格,而且你的程序输出也要和样例格式相同。返回的列表对顺序没有要求。员工信息数量 N <= 50 条。朋友关系的数量 M <= 1000 条。员工ID都是100以内的数字。部门数 K <= 20
示例
输入:
employees = ["1, Bill, Engineer","2, Joe, HR","3, Sally, Engineer","4, Richard, Business","6, Tom, Engineer"
]friendships = ["1, 2","1, 3","3, 4"
]输出:
"Engineer: 2 of 3"
"HR: 1 of 1"
"Business: 1 of 1"说明:
样例中,`Engineer`的`1`号员工和`HR`的`2`号员工是朋友关系,
`Engineer` 的`3`号员工和`Business`的`4`号员工是朋友关系,
所以`Engineer`有`2`个人和其它部门有朋友关系,输出"Engineer: 2 of 3“。
此外,HR部门有1人和其他部门有朋友关系,
Business部门有1人和其他部门有朋友关系。

https://tianchi.aliyun.com/oj/376506598349105305/389682099890885302

2. 解题

class Solution {
public:/*** @param employees: information of the employees* @param friendships: the friendships of employees* @return: return the statistics*/vector<string> departmentStatistics(vector<string> &employees, vector<string> &friendships) {// write your code here.unordered_map<string, int> count;unordered_map<string, string> id_dep;for(auto& e : employees){vector<string> t = split(e);id_dep[t[0]] = t[2];count[t[2]]++;}unordered_map<string, unordered_set<string>> p;for(auto& f : friendships){vector<string> t = split(f);if(id_dep[t[0]] != id_dep[t[1]]) // 同一个部门的话,不能计算{   p[id_dep[t[0]]].insert(t[0]);p[id_dep[t[1]]].insert(t[1]);}}vector<string> ans;for(auto& ct : count){int all = ct.second;string dep = ct.first;int num = p[dep].size();ans.push_back(dep + ": " + to_string(num) + " of " + to_string(all));}return ans;}vector<string> split(string& str){vector<string> t;string s;for(auto c : str){if(c ==','){t.push_back(s);s = "";}else if(c != ' ')s.push_back(c);}t.push_back(s);return t;}
};

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 过滤emoji表情符号,android怎样过滤字符串中的emoji表情

满意答案jdubysct2016.03.15采纳率&#xff1a;43% 等级&#xff1a;8已帮助&#xff1a;863人解决方案对于字符串处理,首选就是正则表达式去处理,而在android系统中可以自定义InputFilter去过滤需要处理掉的字符串,代码如下InputFilter emojiFilter new InputFilter ( ) {…

c++exe程序在别人电脑上双击无法打开_Windows10电脑磁盘占用率过高,用这二招轻松解决...

在操作计算机时&#xff0c;可能会看到类似“Srtasks.Exe”的信息&#xff0c;这个Srtasks.Exe表明Windows10电脑磁盘占用率过高。这是被称为“Microsoft系统保护后台任务”的可信Microsoft进程的可执行文件&#xff0c;Windows 10的“任务计划程序”经常使用该进程自动创建还原…

链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?

VLAN聚合的工作过程和通行情况是如何的呢&#xff1f;工作原理如下&#xff1a;和普通VLAN都有一个三层逻辑接口和若干物理接口&#xff0c;VLAN聚合定义的Super-VLAN和Sub-VLAN比较特殊&#xff1a;Sub-VLAN&#xff1a;只包含物理接口&#xff0c;不能建立三层VLANIF接口&…

天池 在线编程 区分用户名(哈希)

文章目录1. 题目2. 解题1. 题目 描述 给出一组用户名&#xff0c;如果有重复的用户名&#xff0c;则在用户名后添加数字区别&#xff0c;并返回修改后的数组。 样例 1: 输入&#xff1a;["aa", "bb", "cc", "bb", "aa", &…

蓝桥杯 之 基础练习10:十进制转十六进制

【循环 整除 求余 判断】 /*问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号&#xff0c;分别表示十进制数的0至15。十六进制的计数方法是满16进1&#xff0c;所以十进制数16在十六进制中是10&#xff0c;…

天池 在线编程 区间合并(字符串)

文章目录1. 题目2. 解题1. 题目 描述 现在给你两个字符串区间(按字典顺序), 请你判断两个区间是否可以合并。 字符串区间[a, b)&#xff0c;包括所有以a开头的字符串。 例如&#xff0c;区间[a, b)和区间[ab,c)是可以合并的&#xff0c; 区间[a,b)和区间[b, c]也是可以合并的…

LeetCode 1812. 判断国际象棋棋盘中一个格子的颜色

文章目录1. 题目2. 解题1. 题目 给你一个坐标 coordinates &#xff0c;它是一个字符串&#xff0c;表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色&#xff0c;请你返回 true&#xff0c;如果是黑色&#xff0c;请返回 false 。 给…

dev c++ 代码补全_zsh配置与代码自动补全+tmux配置

先上链接ohmyzsh​github.comzsh-autosuggestions​github.comgpakosz/.tmux​github.com问题描述代码需要&#xff0c;更换了服务器&#xff0c;发现新服务器上zsh没有自动补全&#xff0c;难受得不行&#xff0c;并且没有个性化的配置&#xff0c;强迫症顶不住&#xff0c;tm…

京东抢购助手_[Windows] 京东极速抢购助手V2.0,支持京东健康+扫货抢购

本软件仅供学习交流&#xff0c;完全免费&#xff0c;同时也为帮助有缘人能买到自用的口罩&#xff0c;度过这段特殊时期&#xff01;请勿用于其它用途&#xff0c;谢谢&#xff01;如有违规&#xff0c;请删帖&#xff01;下载地址&#xff1a;https://www.lanzous.com/ia3bfl…

SQL Server 和 Oracle 以及 MySQL 有哪些区别?

SQL&#xff0c;在这里我理解成SQL Server。三者是目前市场占有率最高&#xff08;依安装量而非收入&#xff09;的关系数据库&#xff0c;而且很有代表性。排行第四的DB2&#xff08;属IBM公司&#xff09;&#xff0c;与Oracle的定位和架构非常相似&#xff0c;就不赘述了。 …

LeetCode 1813. 句子相似性 III

文章目录1. 题目2. 解题1. 题目 一个句子是由一些单词与它们之间的单个空格组成&#xff0c;且句子的开头和结尾没有多余空格。 比方说&#xff0c;"Hello World" &#xff0c;"HELLO" &#xff0c;"hello world hello world" 都是句子。 每个单…

vim配置python开发环境_GitHub - TTWShell/legolas-vim: Vim配置,为python、go开发者打造的IDE。...

legolas-vim个人vim配置。支持python、go等自动提示&#xff0c;支持python、go的函数跳转&#xff08;python支持虚拟环境&#xff09;。 最终效果图&#xff08;函数列表的feature已移除&#xff0c;因为大项目会导致性能问题&#xff09;&#xff1a;支持Python自动补全的最…

平面设计中的网格系统pdf_平面设计基础知识

导语&#xff1a;“ 给大家推荐优质书籍&#xff0c;包含平面设计基础入门知识的书籍分享”。平面设计基础知识分享书籍名称&#xff1a;《写给大家看的设计书》作者&#xff1a;[美]罗宾威廉姆斯著平面设计的四个原则&#xff1a;复杂的设计原理在《写给大家看的设计书》中凝炼…

LeetCode 1814. 统计一个数组中好对子的数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums &#xff0c;数组中只包含非负整数。 定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。 比方说 rev(123) 321 &#xff0c; rev(120) 21 。我们称满足下面条件的下标对 (i, j) 是 好的 &#xff1a; 0 < i <…

如何看当前windows是utf8还是gbk_监理工程师5月份出教材,现在如何备考?

监理工程师教材预计5月份出版&#xff0c;相信考生都知道监理工程师教材对于考生复习的重要性&#xff0c;那么现在考生应该如何学习呢?听小编给你说一说。教材没有发布之前怎么学习?教材改动比较大&#xff0c;没有发布之前我们就不要学习了么?小编不这么认为&#xff0c;监…

巧用Hint

一般计算fibonacci的方法&#xff1a; 1 def fibonacci (n): 2 if n 0 or n 1: 3 return 1 4 else: 5 return fibonacci(n-1) fibonacci(n-2) 这样的 call graph for fibonacci with n4: 当计算 fibonacci(30)的时候还可以&#xff0c;当计算 fibon…

LeetCode 1816. 截断句子

文章目录1. 题目2. 解题1. 题目 句子 是一个单词列表&#xff0c;列表中的单词之间用单个空格隔开&#xff0c;且不存在前导或尾随空格。每个单词仅由大小写英文字母组成&#xff08;不含标点符号&#xff09;。 例如&#xff0c;"Hello World"、"HELLO"…

脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

点上方蓝字关注公众号&#xff0c;坚持每天技术打卡学网络&#xff0c;就在IE-LAB国内最著名的高端网络工程师培养基地QOS是网络服务质量技术&#xff0c;是所有考试中都会有的考点&#xff0c;主要在SP的课程中详述&#xff0c;是高中低级的网工都有必要了解的技术。今天我们来…

LeetCode 1817. 查找用户活跃分钟数(哈希)

文章目录1. 题目2. 解题1. 题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数 k 。 日志用一个二维整数数组 logs 表示&#xff0c;其中每个 logs[i] [IDi, timei] 表示 ID 为 IDi 的用户在 timei 分钟时执行了某个操作。 多个用户 可以同时执行操作&#xff0c;单…

日期传递过程_买东西别再只看生产日期和保质期了!快算算你一天吃了多少添加剂?...

开始今天的科普前&#xff0c;微医君先和大家讲一下我们办公室上周出现的“假”全麦面包事件。全麦面包是很多减肥人士最热衷的食物之一&#xff0c;小A也不例外。结果上周微医君帮她买面包时&#xff0c;就发现小A平时经常买的全麦面包是“假”的。为什么明明包装上写着“全麦…