一、题目

二、解题思路

首先是对自己的一个思路描述,首先只是想判断四周是否为存在0,然后不断顺着0的位置一路走下去,当出现四周没有1时,在从原本的位置倒退一格,但是发现这样的结果会忽略很多条路径,因此最终看来很多的相关的题目,总结出了自己的方法
正确解法:
归结到底这还是一个深度算法的题,我们要模拟出每一条路径,从四个方向不断尝试向前前进,如果能走我们就将该位置存储最终路径,不能走我们不断回退,同时删除存入的路径。最终代码如下


代码

data = []
path_sum = []  # 所有的路径
len_path = []  # 路径的长度统计
# 输入
n, m = input().split()
n, m = int(n), int(m)for i in range(n):data.append(input(f'请输入第{i + 1}行的数据:').split())def outOfRange(i, j, path_one):"""判断是否超出范围或者撞墙:return:"""if i == n or i == -1 or j == m or j == -1:  # 判断是否超出围墙passelse:# 前路可走,并且不走回头路if data[i][j] == '0' and path_one.count([i, j]) == 0:walk(i, j, path_one)def judgment_executable(i, j, path_one):"""进行发散:return:"""path_one.append([i, j])if i == n - 1 and j == m - 1:  # 到达终点data[n - 1][m - 1] = '0'  # 终点重新设为可走# 变为元组存入总数据path_sum.append(tuple(path_one))# 删除最后一个,进行发散path_one.pop()else:outOfRange(i + 1, j, path_one)  # 下outOfRange(i, j - 1, path_one)  # 左outOfRange(i - 1, j, path_one)  # 上outOfRange(i, j + 1, path_one)  # 右path_one.pop()  # 删除无路可走的位置# 不停前进
def walk(i, j, path_one):judgment_executable(i, j, path_one)walk(0, 0, [])  # 开始行走# 输出
for i in path_sum:for j in i:print(f'{tuple(j)}->' if j != [n - 1, m - 1] else tuple(j), end='')print(f'\tStep={len(i) - 1}')len_path.append(len(i) - 1)  # 存入所有路径的所有大小
print(max(len_path) - min(len_path))
```。

机器人走迷宫(python解法)相关推荐

  1. 【华为OD机试真题 python】机器人走迷宫 【2022 Q4 | 200分】

    前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...

  2. 【算法】机器人走迷宫破壁解法(适用于走迷宫、最短路径算法)-20200412

    标题:机器人走迷宫破壁解法(适用于走迷宫.最短路径算法)-20200412 问题描述: 一块矩形方格,含有障碍和可通行格子,求从某一点到另外一点的最短距离?N*M的矩阵: 其中,1代表障碍,0代表可通 ...

  3. python走迷宫_Python使用Tkinter实现机器人走迷宫

    这本是课程的一个作业研究搜索算法,当时研究了一下Tkinter,然后写了个很简单的机器人走迷宫的界面,并且使用了各种搜索算法来进行搜索,如下图: 使用A*寻找最优路径: 由于时间关系,不分析了,我自己 ...

  4. 华为OD机试 - 机器人走迷宫(Python)| 递归的使用

    OD统一考试B卷:机器人走迷宫 题目 房间有 X*Y 的方格组成,例如下图为6*4的大小.每一个放个以坐标(x,y)描述. 机器人固定从方格(0,0)出发,只能向东或者向北前进, 出口固定为房间的最东 ...

  5. Python 之 使用Tkinter 做GUI 研究机器人走迷宫

    这本是课程的一个作业研究搜索算法,当时研究了一下Tkinter,然后写了个很简单的机器人走迷宫的界面,并且使用了各种搜索算法来进行搜索,如下图: 使用A*寻找最优路径: 由于时间关系,不分析了,我自己 ...

  6. 华为OD机试Golang解题 - 机器人走迷宫

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南) 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 ...

  7. 【算法】机器人走迷宫(适用于走迷宫、最短路径算法)-20200412

    标题:机器人走迷宫(适用于走迷宫.最短路径算法) 问题描述: 一块矩形方格,含有障碍和可通行格子,求从某一点到另外一点的最短距离?N*M的矩阵: 其中,1代表障碍,0代表可通行:示例:给定二维矩阵 0 ...

  8. 中南大学复试上机:1021:机器人走迷宫

    1021: 机器人走迷宫 时间限制: 1 Sec  内存限制: 128 MB 题目描述 有一个愚蠢的机器人走进一个w*h的迷宫,迷宫里有空地和陷阱.他想要访问迷宫的每个方格,但是它很笨,只会按照指令的 ...

  9. 【华为OD机试真题 JAVA】机器人走迷宫

    标题:机器人走迷宫 | 时间限制:1秒 | 内存限制:65536K | 语言限制:不限 1. 房间由X*Y的方格组成,例如下图为6*4的大小.每一个方格以坐标(x,y)描述. 2. 机器人固定从方格( ...

  10. 【华为机试】【校招】【Java】机器人走迷宫(DFS)

    ■ 题目描述 [机器人走迷宫] 机器人走一个迷宫,给出迷宫的x和y(x*y的迷宫)并且迷宫中有障碍物,输入k表示障碍物有k个,并且会将障碍物的坐标挨个输入. 机器人从0,0的位置走到x,y的位置并且只 ...

最新文章

  1. 培养这10个习惯,你就离UNIX高手更进一步了
  2. How to connect oracle databse
  3. [转载] Python 递归 深入理解递归 Python递归剖析,绝对让你看懂!
  4. 民生付 php,“民生付”升级我省电商支付体验
  5. 51nod 1237 最大公约数之和 V3
  6. Reporting Services 4: Web Service
  7. Windows下Subversion配置管理员指南
  8. FastDFS配置之常见错误
  9. Codeforces Round #374 (Div. 2) C. Journey DP
  10. mysql:分组中某字段最大值的查询结果
  11. fft c语言与matlab,c语言matlab实现fft几种编程实例.doc
  12. 绝地求生透视辅助视频
  13. delphi 剪切板变量_delphi clipbrd剪贴板的读写和清除功能
  14. [Unity][AssetBundle]本地其他项目AB包加载AB打包文件文件路径
  15. 定位模组 ppm CEP 等参数 说明
  16. JAVA字符串格式化-String.format()的使用总结
  17. unity 打包APK 应用未安装
  18. 蚂蚁金服副总谈区块链
  19. 一个dht网络的“磁力链接”搜索python代码
  20. 小程序 - 分享功能

热门文章

  1. JS中bignumber处理高精度小数运算的使用
  2. 我们原来生活在“数字阴影”和“平行宇宙”中
  3. 证券公司可以提供免费股票level2接口吗?
  4. Java IO流 - FileInputStream
  5. 造成死机的硬件有哪些?CPU风扇正常的转速是多少?
  6. 计算机网络教师个人工作总结,计算机教师个人工作总结 -总结
  7. 飞信如何设置不用手机接收短信
  8. Web功能之复制粘贴剪切板
  9. PC安卓各模拟器连接指令
  10. Linux服务器中木马(肉鸡)手工清除方法(转载)