1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol video solution AI分析

题面解释:

你有一个通讯录,其中每个联系人包含姓名和多个手机号。如果两个联系人拥有相同的手机号,认为他们是同一个人,需要将其合并。如果合并时发现姓名不同,则保留字典序较小的姓名。通讯录中记录的手机号最多有10个,且每个手机号由1到10位数字组成。输入第一行为记录数量,接下来每行为一条联系人记录,包含姓名和若干手机号,手机号之间用空格隔开。输出时,整理后的通讯录需要按姓名字典序排列,同一联系人的手机号也按升序排列。

思路:并查集 + 哈希 + 自定义排序

1.基于共享电话号码的联系人属于同一组的思路,我们可以先使用哈希表将电话号码映射到对应的联系人编号列表上,然后使用并查集将共享同一电话号码的联系人合并到同一组。

2.对于并查集里的每个组(用该集合中的root节点编号表示),我们需要找到字典序最小的联系人姓名和该组内的联系人的所有电话号码。

P14355.【并查集3】通讯录合并

    2000ms Tried: 192 Accepted: 52 Difficulty: 5
    算法与标签>并查集

本题为2024年10月12日-华为国内机考原题

华为机考的介绍点击这里

题目内容

你有一个通讯录,这个通讯录里每个联系人都包含姓名和手机号,一个联系人可能有多个手机号。

如果发现两个联系人拥有相同的手机号,我们就认为他们是同一个人。

你的任务就是整理这个通讯录,将具有相同手机号的联系人合并为一个联系人,并返回合并后的通讯录列表。

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

输入描述

第一行表示通讯录的记录数量numnumnum,值的范围[1,10001, 10001,1000]。

从第二行开始,每一行代表一条联系人记录,每条录包括姓名和若干电话号码,电话号码的个数不超过101010(姓名由英文字母大小写组成,长度在1到10之间,电话号码由数字组成)。

之后的若干条记录代表人的记录(手机号个数111到101010位数字不重复)。同一条记录里的电话号码用空格隔开,电话号码的长度在[1,101,101,10]

输出描述

整理后的通讯录列表,其中如果两个联系人被识别为同一个人,则他们的电话号码合并。

输出联系人姓名和手机号码列表按ASCIIASCIIASCII码升序排序。

样例1

输入

4 
kaka 10000000000 10000000001 
tata 10000000020 
kaka 10000000000 10000000002 
tata 10000000010

输出

kaka 10000000000 10000000001 10000000002 
tata 10000000010 
tata 10000000020 

说明

在这个通讯录中,第一个kaka和第二个kaka有相同的手机号“10000000000”,因此他们被视为同一个人。

因此kaka一共有三个号码并按ASCII码升级排序结果是10000000000 10000000001 10000000002。

第一个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一共有四个号码并按ASCII码升级排序结果是10000000000 10000000001 10000000002 10000000003

开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 36ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?