codexivoRetosEl camino más cortoSandbox

Avanzado · grafos, colas

El camino más corto

Escribe el procedimiento resolver(…) y regresa la respuesta. Límite: 50.000 operaciones por caso.

Tienes un mapa como diccionario: cada lugar tiene la lista de lugares a los que se puede ir directamente.

Escribe resolver(mapa, inicio, destino), que regresa cuántos pasos tiene el camino más corto de inicio a destino, o -1 si no se puede llegar.

Ejemplos

  1. Ejemplo 1

    Llamada
    resolver({ "casa": ["parque", "tienda"], "parque": ["casa", "escuela"], "tienda": ["casa"], "escuela": ["parque"] }, "casa", "escuela")
    Regresa
    2
  2. Ejemplo 2

    Llamada
    resolver({ "a": ["b"], "b": ["a"] }, "a", "a")
    Regresa
    0

Al enviar también se prueban 3 casos ocultos.

Pistas

    Solución de referencia

    Mírala cuando lo resuelvas, o si ya lo intentaste y te atoraste.