python机器人运动范围问题的解答


Posted in Python onApril 29, 2019

机器人的运动范围Python实现:

问题:地上有个 m 行 n 列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左、右、上、下移动一格,但不能进入行坐标和列坐标的数位之和大于 k 的格子。

例如,当 k 为 18 时,机器人能够进入方格(35,37),因为 3+5+3+7=18 但它不能进入方格(35,38),因为 3+5+3+8=19 请问该机器人能够达到多少格子?

回溯算法。

当准备进入坐标(i,j)时,通过检查坐标的数位来判断机器人能否进入。如果能进入的话,接着判断四个相邻的格子。

代码:

# -*- coding:utf-8 -*-
class Solution:
 def movingCount(self, threshold, rows, cols):
  # write code here
  matrix = [[True for i in range(cols)] for j in range(rows)]
  result = self.findgrid(threshold, rows, cols, matrix, 0, 0)
  return result
 
 def judge(self, threshold, i, j):
  if sum(map(int,str(i)+str(j))) <= threshold:
   return True
  else:
   return False
  
 def findgrid(self, threshold, rows, cols, matrix, i, j):
  count = 0
  if i < rows and i>=0 and j<cols and j>=0 and self.judge(threshold, i, j) and matrix[i][j]:
   matrix[i][j] = False
   count = 1+ self.findgrid(threshold, rows, cols, matrix, i-1, j) \
     + self.findgrid(threshold, rows, cols, matrix, i+1, j) \
     + self.findgrid(threshold, rows, cols, matrix, i, j-1) \
     + self.findgrid(threshold, rows, cols, matrix, i, j+1)
  return count

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中xrange用法分析
Apr 15 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
Python中turtle库的使用实例
Sep 09 Python
Python创建数字列表的示例
Nov 28 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
python实现拼图小游戏
Feb 22 Python
Django CSRF认证的几种解决方案
Mar 03 Python
什么是Python变量作用域
Jun 03 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
浅析Python迭代器的高级用法
Jul 16 Python
基于Python采集爬取微信公众号历史数据
Nov 27 Python
教你用python实现12306余票查询
Jun 30 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 #Python
Python 实现微信防撤回功能
Apr 29 #Python
python程序控制NAO机器人行走
Apr 29 #Python
Django web框架使用url path name详解
Apr 29 #Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 #Python
Django使用redis缓存服务器的实现代码示例
Apr 28 #Python
django的settings中设置中文支持的实现
Apr 28 #Python
You might like
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
PHP自定义函数收代码
2010/08/01 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
php集成动态口令认证
2016/07/21 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
utf8的编码算法 转载
2006/12/27 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
python协程用法实例分析
2015/06/04 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
python实现最速下降法
2020/03/24 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
生产班组长岗位职责
2014/01/05 职场文书
运动会通讯稿50字
2014/01/30 职场文书
教师个人事迹材料
2014/12/17 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电