神奇空间中房间最短传送门路径的 Python 实现
以下是使用 Python 实现的代码: ```python from collections import deque # 读取输入 n = int(input()) rooms = [] for _ in range(n): portals = list(map(int, input().split(','))) rooms.append(portals) a, b = map(int, input().split(',')) # 调整房间编号为 0 索引 a -= 1 b -= 1 # 构建图 graph = [[] for _ in range(n)] for i in range(n): for j in range(i + 1, n): # 检查两个房间是否有共同的传送门 if set(rooms[i]).intersection(set(rooms[j])): graph[i].append(j) graph[j].append(i) # BFS 搜索 visited = [False] * n queue = deque([(a, 0)]) visited[a] = True while queue: current_room, steps = queue.popleft() if current_room == b: print(steps) break for neighbor in graph[current_room]: if not visited[neighbor]: queue.append((neighbor, steps + 1)) visited[neighbor] = True else: print(-1) ``` 代码思路: 1. **输入处理**:首先读取房间数量 `n`,然后依次读取每个房间的传送门编号并存储在 `rooms` 列表中,最后读取起始房间 `a` 和目标房间 `b`。 2. **构建图**:使用二维列表 `graph` 表示房间之间的连通性。通过遍历每对房间,检查它们是否有共同的传送门,如果有则在图中添加相应的边。 3. **BFS 搜索**:使用广度优先搜索(BFS)算法来找到从起始房间到目标房间的最短路径。初始化一个队列 `queue` 用于存储待访问的房间和到达该房间所需的步数,同时使用 `visited` 列表记录每个房间是否已经被访问过。 4. **输出结果**:如果在 BFS 过程中找到了目标房间,则输出最少经过的传送门数量;如果遍历完所有可达的房间都没有找到目标房间,则输出 -1。 ######[AI问答 | 528点数解答 | 2026-02-14 20:11:28]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)434
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)320
- Windows环境下C/C++项目开发:完整目录、文件路径及编译脚本设置示例(字节豆包 | 459点数解答 | 2024-11-02 20:38:01)215
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)391
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)382
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)289
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)370
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)398
- Java调用Python接口中文乱码问题:字符编码统一解决方案(讯飞星火 | 344点数解答 | 2024-06-06 17:19:55)507
- 解决Java调用Python接口时中文值乱码问题:设置字符编码为UTF-8(讯飞星火 | 264点数解答 | 2024-06-06 17:27:09)369
- 医院系统:信息添加、查询与修改操作全流程展示( | 31点数解答 | 2024-05-22 11:20:34)483
- 超详细!Java使用ProcessBuilder调用Python脚本实现PPT转图片(讯飞星火 | 295点数解答 | 2024-06-06 17:07:15)313