Вступить в клуб →
средняяpythonГрафы и обходы

shortest_path_len: кратчайшее расстояние в рёбрах обходом в ширину

Напишите функцию shortest_path_len(graph: dict, start, goal) -> int.

Вход. graph — словарь: ключ это вершина, значение это список её соседей. Граф неориентированный и словарь уже симметричен (если b есть в graph['a'], то a есть в graph['b']). Все вершины графа присутствуют как ключи, в том числе изолированные — у них пустой список соседей. Гарантируется, что start и goal есть среди ключей.

Выход. Минимальное количество рёбер на пути от start до goal (целое число).

Поведение на краевых входах.

  • start == goal — вернуть 0.
  • goal недостижим из start — вернуть -1.
  • Соседние вершины — вернуть 1.

Вершины могут быть строками, сравнивать их можно только на равенство.

заготовка решения

def shortest_path_len(graph: dict, start, goal) -> int:
    # ваш код
    pass

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела