Войти Создать аккаунт

Рекурсия · 10 из 19

Общий предок

За столом спорят, кем приходятся друг другу двое из родни. Спор решается одним именем: ближайший человек, от которого оба происходят.

Что сделать

Решите спор за столом — найдите ближайшего человека, от которого происходят оба.

Что приходит

  • drevo — корень древа: словарь с ключами "imya" и "deti"

  • pervoe и vtoroe — имена двоих; имена в древе не повторяются

Что вернуть

Имя ближайшего общего предка; если один из двоих — предок другого, то он сам; кого-то нет в древе — None.

Допишите функцию obshchiy_predok в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

У Петра дети Иван и Мария, у Ивана — Фёдор и Анна, у Марии — Глеб. Для Фёдора и Анны ближайший общий — "Иван", для Фёдора и Глеба — уже "Пётр".

Тот же пример кодом
Перед вызовом
drevo = {"imya": "Пётр", "deti": [
    {"imya": "Иван", "deti": [{"imya": "Фёдор", "deti": []}, {"imya": "Анна", "deti": []}]},
    {"imya": "Мария", "deti": [{"imya": "Глеб", "deti": []}]},
]}
Вызов
obshchiy_predok(drevo, "Фёдор", "Анна")
Вернуть
'Иван'
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.