Learn Algorithm Design by Building a Shortest Path Algorithm - Step 38

Tell us what’s happening:

I think I followed the instructions and I do not see what I am missing here.

Instructions:
Create an if statement to check if the distance of the neighbor node (the second item in the processed tuple) plus the distance of current is less than the currently known distance of the neighbor node (the first item in the processed tuple).

Use the pass keyword to temporarily fill the body of the if.

Comment
You should have an if statement to check if distance + distances[current] is less than distances[node] .

Your code so far

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

def shortest_path(graph, start):
    unvisited = list(graph)
    distances = {node: 0 if node == start else float('inf') for node in graph}
    paths = {node: [] for node in graph}
    paths[start].append(start)
    
    while unvisited:
        current = min(unvisited, key=distances.get)

# User Editable Region

        for node, distance in graph[current]:
            pass
            if distance + distances[current] < distances[node]:
                pass

# User Editable Region

    print(f'Unvisited: {unvisited}\nDistances: {distances}\nPaths: {paths}')
    
#shortest_path(my_graph, 'A')

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

Challenge Information:

Learn Algorithm Design by Building a Shortest Path Algorithm - Step 38

Unfortunately, the instructions are not clear on the pass keyword.
Please, remove the previous pass

How I did not think about it? lol
It worked
Thanks a lot

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.