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

Tell us what’s happening:

My code is not passing this is the error i am getting
Sorry, your code does not pass. Try again.

You should call extend() on the neighbour node path passing the current node path as the argument.

Your code so far

if paths[node][-1] == node:
paths[node] = paths[current]
else:
paths[node].extend(paths[current])

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)
        for node, distance in graph[current]:
            if distance + distances[current] < distances[node]:
                distances[node] = distance + distances[current]

# User Editable Region

                if paths[node][-1] == node:
                    paths[node] = paths[current]
                else:
                   paths[node].extend(paths[current])

# 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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

Challenge Information:

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

Hello zeedankhalid,

Your new line of code in the else statement isn’t idented right. It needs to be 1 tab or 4 spaces more than the else statement.
And easy way to do so is just press enter once after else: and type there.

Thanks Problem resolved

1 Like

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