Напишите программу, чтобы взять график (из стандартного ввода или файла, на ваш выбор) и найти кратчайший путь в графике.
Графики указываются в следующем формате:
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
Все ребра ненаправлены и лежат вдоль одного из 8 основных направлений (то есть без изгибов). Ребра могут дополнительно содержать вес от 0 до 9. Вес не будет на последнем символе, который соединяет ребро с узлом (то есть ребра должны содержать не менее 3 символов, чтобы содержать вес). Невзвешенные ребра имеют вес по умолчанию 1.
Ваш код должен вычислить кратчайший путь между узлами S
и T
и напечатать длину и путь, как это:
5:SDEFT
Короче правильная программа выигрывает.
code-golf
graph-theory
path-finding
Кит Рэндалл
источник
источник
AS0,SD0,SE5,DE3,FE0,FT0
(вы можете опустить запятые, если каждая запись имеет длину 3 байта.)Ответы:
Вот мой код, 494 символа в Python:
источник