151. 24年9月-华为留学生-2.通讯录合并

难度 7
  • 标签:
  • 大厂笔试真题华为
题目描述
题解
题库

24年9月-华为留学生-2.通讯录合并

题目内容

你有一个通讯录,这个通讯录里每个联系人都包含姓名和手机号,一个联系人可能有多个手机号。
如果发现两个联系人拥有相同的手机号,我们就认为他们是同一个人。
你的任务就是整理这个通讯录,将具有相同手机号的联系人合并为一个联系人,并返回合并后的通讯录列表。

注意:用例不保证具有相同手机号的联系人姓名肯定是相同的,如果合并的时候发现联系人姓名不同,那么以字典序小的为姓名。

输入描述

第一行表示通讯录的记录数量 num,值的范围 [1, 1000]。
从第二行开始,每一行代表一条联系人记录,每条记录包括姓名和若干电话号码,电话号码的个数不超过10(姓名由英文字母大小写组成,长度在1到10之间,电话号码由数字组成)。
之后的若干条记录代表人的记录(手机号个数1到10位数字不重复)。同一条记录里的电话号码用空格隔开,电话号码的长度在[1,10]。

输出描述

整理后的通讯录列表,其中如果两个联系人被识别为同一个人,则他们的电话号码合并。
输出联系人姓名和手机号码列表按ASCII码升序排序。

样例1

输入

kaka 10000000000 10000000001
tata 10000000020
kaka 10000000000
10000000002
tata 10000000010

输出

kaka 10000000000 10000000001 10000000002
tata 10000000010
tata 10000000020

说明
在这个通讯录中,第一个kaka和第二个kaka有相同的手机号"10000000000",因此他们被视为同一个人。
因此kaka一共有三人号码并按ASCl码升级排序结果是100000000001000000000110000000002。
第一人tata和第二人tata没有相同的号码,因此被视作两人人。

样例2

输入

3
kaka 10000000000 10000000001
kaka 10000000001 10000000002
kaka 10000000002 10000000003

输出

kaka 10000000000 10000000001 10000000002 10000000003

说明
在这个通讯录中,第一个kaka和第二个kaka有相同的手机号"10000000001",第二个kaka和第三个kaka有相同的手机号"10000000002”,因此题目被视为同一人人。
因此kaka一共有四人号码并按ASCl码升级排序结果是10000000000 10000000001 10000000002 10000000003。