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
Ejemplo 1
- Llamada
- resolver({ "casa": ["parque", "tienda"], "parque": ["casa", "escuela"], "tienda": ["casa"], "escuela": ["parque"] }, "casa", "escuela")
- Regresa
- 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.