Files
2024-05-29 10:06:17 -07:00

1.8 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
655774955b097ea14897db12 Крок 28 20 step-28

--description--

Відстань від початкового вузла дорівнює нулю, оскільки алгоритм починає оцінювання саме звідти.

Після того, як ви додали node до unvisited в циклі, створіть інструкцію if, яка виконуватиметься, якщо вузол дорівнює початковому вузлу. Потім призначте 0 до цього вузла в межах словника distances.

--hints--

Створіть інструкцію if, яка виконується, коли node дорівнює start.

({ test: () =>  {
    const commentless_code = __helpers.python.removeComments(code);
    const {block_body} = __helpers.python.getBlock(commentless_code, /for\s+node\s+in\s+graph\s*/);        
    assert(block_body.match(/unvisited\.append\s*\(\s*node\s*\)\s*^\s+if\s+(node\s*==\s*start|start\s*==\s*node)\s*:/m));
  }
})

Призначте 0 до вузла в словнику distances в межах нової інструкції if.

({ test: () =>  {
   const commentless_code = __helpers.python.removeComments(code);
    const {block_body} = __helpers.python.getBlock(commentless_code, /if\s+(node\s*==\s*start|start\s*==\s*node)\s*/m);  
    assert(block_body.match(/^\s+distances\s*\[\s*node\s*\]\s*=\s*0/m));
  }
})

--seed--

--seed-contents--

my_graph = {
    'A': [('B', 3), ('D', 1)],
    'B': [('A', 3), ('C', 4)],
    'C': [('B', 4), ('D', 7)],
    'D': [('A', 1), ('C', 7)]
}

--fcc-editable-region--
def shortest_path(graph, start):
    unvisited = []
    distances = {}
    for node in graph:
        unvisited.append(node)
--fcc-editable-region--