Escreva um programa para obter um gráfico (da entrada padrão ou de um arquivo, sua escolha) e encontre o caminho mais curto no gráfico.
Os gráficos são especificados usando o seguinte 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
Todas as arestas não são direcionadas e ficam ao longo de uma das oito direções principais (ou seja, sem dobras). As arestas podem opcionalmente conter um peso de 0 a 9. O peso não estará no último símbolo que conecta a borda a um nó (ou seja, as bordas precisam ter pelo menos três símbolos para conter um peso). As arestas não ponderadas têm um peso padrão de 1.
Seu código deve calcular o caminho mais curto entre os nós S
e T
e imprimir o comprimento eo caminho, como este:
5:SDEFT
O programa correto mais curto vence.
code-golf
graph-theory
path-finding
Keith Randall
fonte
fonte
AS0,SD0,SE5,DE3,FE0,FT0
(você pode omitir as vírgulas se cada entrada tiver 3 bytes de comprimento).Respostas:
Aqui está o meu código, 494 caracteres em python:
fonte