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

文章目录

    • 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的“任务计划程序”经常使用该进程自动创建还原…

Swift学习笔记 闭包表达式

闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。 闭包的形式主要有三种&#xff1a; 1. 全局函数是一个有名字但不会捕获任何值的闭包 2. 嵌套函数是一个有名字并可以捕获其封…

链接聚合是将一组物理接口_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", &…

Android标签库,JSP Struts之HTML标签库详解 _Android/移动互联网/物联网/_夜鹰教程网...

标签库 说明HTML 标签 用来创建能够和 Struts 框架和其他相应的 HTML 标签交互的 HTML 输入表单Bean 标签 在访问 JavaBeans 及其属性&#xff0c;以及定义一个新的 bean 时使用Logic 标签 管理条件产生的输出和对象集产生的循环Template 标签 随着 Tiles 框架包的出现&#xf…

python实现解释器_Python设计模式之解释器模式

解释器模式 对每个应用来说&#xff0c;至少有以下两种不同的用户分类。 基本用户&#xff1a;这类用户只希望能够凭直觉使用应用。他们不喜欢花太多时间配置或学习应用的内部。对他们来说&#xff0c;基本的用法就足够了。 高级用户&#xff1a;这些用户&#xff0c;实际上通常…

蓝桥杯 之 基础练习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;…

python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...

PyQt5选项卡控件QTabWidget简介QTabWidget控件提供了一个选项卡和一个页面区域&#xff0c;默认显示第一个选项卡的页面&#xff0c;通过单击各选项卡可以查看对应的界面&#xff0c;如果在一个窗口中显示的输入字段很多&#xff0c;则可以对这些字段进行拆分&#xff0c;分别放…

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

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

Android全局窗口模糊,javascript – 窗口焦点和模糊事件在Android浏览器上无法正常工作...

我发现当连接到窗口,文档或正文时,javascript焦点和模糊事件在Android浏览器上无法正确触发.我想要一个在桌面浏览器上正常工作的简单测试脚本,但在Android股票浏览器,Dolphin和Opera mobile上都失败了&#xff1a;Focus testwindow.onfocus function() {document.getElementB…

burp爆破线程设置多少_你知道线程池创建多少线程比较合理吗?

为什么会使用多线程创建多少线程比较合适结束语《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spring Boot …

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

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

Unity 官方网站

http://msdn.microsoft.com/en-us/library/dn170416.aspx转载于:https://www.cnblogs.com/Qiaoyq/p/4257355.html

python数组遍历输出所有组合_python遍历列表和数组实例讲解

python遍历实例总结python同时遍历数组的索引和值的实例你想在迭代一个序列的同时跟踪正在被处理的元素索引。获取索引内置的 enumerate() 函数可以很好的解决这个问题&#xff1a;>>> my_list [a, b, c]>>> for idx, val in enumerate(my_list):... print(…

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

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

android 获取栈顶activity,Android : 如何得到Activities栈顶的Activity名称

众所周知&#xff0c;Android中的任务等等都是通过栈来管理的&#xff0c;Activities的管理也不例外。栈这种数据结构是大家再熟悉不过了。它的先进后出特性让Android可以很容易实现从当前Activity回到或者重新启动先前的Activity.(注:当系统资源匮乏的时候&#xff0c;系统会释…

京东抢购助手_[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" 都是句子。 每个单…