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

Tell us what’s happening:

Describe your issue in detail here.
Create a for loop to iterate over targets_to_print and print the following f-string: f'\n{start}-{node} distance: {distances[node]}\nPath: {" -> ".join(paths[node])}' .

I am not able to proceed any further, pls someone tell me what I am doing wrong

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, target = ''):
    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]
                if paths[node] and paths[node][-1] == node:
                    paths[node] = paths[current][:]
                else:
                    paths[node].extend(paths[current])
                paths[node].append(node)
        unvisited.remove(current)

# User Editable Region

    targets_to_print = [target] if target else graph for node in paths:
    print(f'\n{start}-{node} distance: {distances[node]}\nPath: {" -> ".join(paths[node])}')


shortest_path(my_graph, 'A')

# User Editable Region

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 50

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.

first click and reset after that.

below this line use for loop

for index in list:
   statement1
   .
   .
   statementn

instead of index use node here and list use targets_to_print. inside for loop give print() function and as per instruction do print.

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