Escriba un programa para tomar un gráfico (ya sea de entrada estándar o de un archivo, su elección) y encuentre la ruta más corta en el gráfico.
Los gráficos se especifican con el siguiente formato:
A---S F--T
| / \ |
| / 5 0
|/ \|
D----3--E
A-Z: nodes in the graph
-|/\: edges in the graph
0-9: weights on the edges
<space>: all the holes
Todos los bordes no están dirigidos y se encuentran a lo largo de una de las 8 direcciones cardinales (es decir, sin curvas). Los bordes pueden contener opcionalmente un peso de 0 a 9. El peso no estará en el último símbolo que conecta el borde a un nodo (es decir, los bordes deben tener al menos 3 símbolos para contener un peso). Los bordes no ponderados tienen un peso predeterminado de 1.
El código debe calcular la ruta más corta entre los nodos S
y T
e imprimir la longitud y el camino, así:
5:SDEFT
El programa correcto más corto gana.
code-golf
graph-theory
path-finding
Keith Randall
fuente
fuente
AS0,SD0,SE5,DE3,FE0,FT0
(podría omitir las comas si cada entrada tiene 3 bytes de longitud).Respuestas:
Aquí está mi código, 494 caracteres en python:
fuente