Объединение аккаунтов по почте

Задача по программированию с проверкой онлайн

Сложность
Средняя
Языки
Python
JavaScript
TypeScript
Java
Go
Темы
Словари и множества
Деревья и графы

Дан список аккаунтов: каждый аккаунт — список строк, где первая строка — имя владельца, а остальные (хотя бы одна) — его адреса почты. Адреса состоят из строчных латинских букв, цифр и символов @ и .. Если у двух аккаунтов есть общий адрес, они принадлежат одному человеку, причём связь транзитивна: аккаунты, связанные цепочкой общих адресов, объединяются. Имя у объединяемых аккаунтов всегда совпадает, а тёзки без общих адресов — разные люди.

Верните объединённые аккаунты в том же формате: имя, затем все различные адреса группы по возрастанию (по кодам символов). Сами аккаунты упорядочьте по возрастанию первого адреса. Для пустого списка верните пустой список. Аккаунтов не больше 1000.

Пример: [["A", "a@x", "b@x"], ["B", "c@x"], ["A", "b@x", "d@x"]] → [["A", "a@x", "b@x", "d@x"], ["B", "c@x"]].


Источник: задача CodeShare

Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Ещё задачи

Все задачи для тренировки