Собесов

Python — Union-Find для связанных записей по id/phone/mail

PythonGraph / Union-FindСложнаяMiddle

Условие

Дана таблица:

key id phone mail
1 12345 89997776655 test@mail.ru
2 54321 87778885566 two@mail.ru
3 98765 87776664577 three@mail
4 66678 87778885566 four@mail.ru
5 34567 84547895566 four@mail.ru
6 34567 89087545678 five@mail.ru

Нужно: по заданному значению поля (id, phone или mail) вернуть все связанные записи — транзитивную связную компоненту, где две записи связаны, если у них совпадает хотя бы одно из значений id, phone, mail.

Для phone = 87778885566 ответ: записи 2, 4, 5, 6.

Парная задача с SQL-версией (sber-sql-connected-records-graph) — здесь решаем на Python.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти