From eb3a2d96ba9e740e8c263a5e941fe1c5c6c12ef7 Mon Sep 17 00:00:00 2001 From: Nikoaly <74960807+Nikoaly@users.noreply.github.com> Date: Tue, 25 Apr 2023 20:58:06 +0300 Subject: [PATCH] Update maze2.py --- Module7/practice/02_Maze-2/maze2.py | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Module7/practice/02_Maze-2/maze2.py b/Module7/practice/02_Maze-2/maze2.py index 655f417c9..c24489437 100644 --- a/Module7/practice/02_Maze-2/maze2.py +++ b/Module7/practice/02_Maze-2/maze2.py @@ -1,5 +1,40 @@ # Скопируйте решение из предыдущей задачи(Maze-1) и адаптируйте под условия текущей задачи # Чем меньше пришлось вносить изменений в код программы, тем лучше было решение предыдущей задачи +from typing import List, Optional +def bfs(graph: List[List[int]], start_point: int) -> List[Optional[int]]: + """ + Алгоритм поиска в ширину + """ + lengths = [None] * len(graph) + lengths[start_point] = 0 + queue = [start_point] + while queue: + cur_vertex = queue.pop(0) + for vertex in graph[cur_vertex]: + if lengths[vertex] is None: + lengths[vertex] = lengths[cur_vertex] + 1 + queue.append(vertex) + return lengths +graph = [ + [1,3], # 0 + [0, 4], # 1 + [5], # 2 + [0, 4, 6], # 3 + [1, 3], # 4 + [2, 8], # 5 + [3], # 6 + [8], # 7 + [5, 7], # 8 +] + +home = 2 +bank = 7 + +path_lengths = bfs(graph, home) +if path_lengths[bank] is not None: + print("Can go to the bank") +else: + print("Can't go to the bank") # Решите задачу и выведите ответ в нужном формате