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