Нашли ошибку?

Через сколько рукопожатий

ЛёгкаяРеализацияГлава 6

#поиск в ширину#очереди#кратчайший путьid: ga-handshakes

Соцсеть задана графом: graph[x] — список тех, кого знает x (знакомство может быть односторонним). Напишите handshakes(graph, start, goal): функция возвращает минимальное число шагов по знакомствам от start до goal. Если start == goal, ответ 0. Если добраться нельзя — -1.

Пример

graph = {
    "Аня": ["Борис", "Вера"],
    "Борис": ["Гоша"],
    "Вера": ["Гоша", "Дина"],
    "Дина": ["Егор"],
}
handshakes(graph, "Аня", "Гоша")   # 2
handshakes(graph, "Аня", "Егор")   # 3
handshakes(graph, "Гоша", "Аня")   # -1

Решение

def handshakes(graph: dict[str, list[str]], start: str, goal: str) -> int:
    """Минимальное число шагов от start до goal или -1."""
    # ваш код
    raise NotImplementedError

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 handshakes.py — тесты те же, результат покажет ✓ / ✗ и итог.