当前位置: 首页 > news >正文

力扣刷题Day 65:单词搜索(79)

1.题目描述

2.思路

方法1(自己写的深度优先的回溯方法):遍历网格,每走过一格都将其坐标加入visited集合,然后向上、下、左、右四个方向查找可行路径,如果找到可行路径则一路向下延伸查找,如不可行则将该坐标从集合里删除,回退到上一坐标继续查找。

方法2(参考Krahets佬的题解对方法1进行了优化):无需用tmp记录当前字符串,直接简化为记录当前字符串长度即可,可进一步节省空间(字符串tmp->整数k)与时间(startswith比较字符串->比较指定坐标的一个字符)。

3.代码(Python3)

方法1:

class Solution:def exist(self, board: List[List[str]], word: str) -> bool:def backtrack(tmp, i, j):print(tmp, i, j)if tmp == word: return Truefor (move_m, move_n) in {(-1, 0), (1, 0), (0, -1), (0, 1)}:if 0 <= i + move_m < m and 0 <= j + move_n < n and word.startswith(tmp + board[i][j]):tmp += board[i][j]if backtrack(tmp, i + move_m, j + move_n): return Truereturn Falsem, n= len(board), len(board[0])for i in range(m):for j in range(n):if board[i][j] == word[0]:return backtrack(board[i][j], i, j)return False

方法2:

class Solution:def exist(self, board: List[List[str]], word: str) -> bool:def backtrack(k, i, j):visited.add((i, j))if k == len(word) - 1: return Truefor (move_m, move_n) in {(-1, 0), (1, 0), (0, -1), (0, 1)}:if 0 <= i + move_m < m and 0 <= j + move_n < n and (i + move_m, j + move_n) not in visited and word[k + 1] == board[i + move_m][j + move_n]:if backtrack(k + 1, i + move_m, j + move_n): return Truevisited.discard((i, j))return Falsem, n = len(board), len(board[0])visited = set()for i in range(m):for j in range(n):if board[i][j] == word[0]:if backtrack(0, i, j): return Truereturn False

4.执行情况

方法1:

方法2:

5.感想

在高铁上完成了这道题,棒棒嘟~

相关文章:

  • Day40
  • 30V/3A,云岑CP8335B,完美替换EUP3484
  • 【Java】mybatis-plus乐观锁-基本使用
  • 『uniapp』添加桌面长按快捷操作 shortcuts(详细图文注释)
  • B端产品经理如何快速完成产品原型设计
  • SQL进阶之旅 Day 8:窗口函数实用技巧
  • Flask项目进管理后台之后自动跳回登录页面,后台接口报错422,权限问题
  • 极具特色的位置运算
  • 一种通用图片红色印章去除的工具设计
  • ArcGIS Pro 3.4 二次开发 - 布局
  • 最悉心的指导教程——阿里云创建ECS实例教程+Vue+Django前后端的服务器部署(通过宝塔面板)
  • 基于Qt封装数据库基本增删改查操作,支持多线程,并实现SQLite数据库单例访问
  • 系统架构中的组织驱动:康威定律在系统设计中的应用
  • 【连接器专题】SD卡座规格书审查需要审哪些方面?
  • DeepSeek 赋能文化遗产数字化修复:AI 重构千年文明密码
  • 极简以太彩光网络解决方案4.0正式发布,“彩光”重构园区网络极简之道
  • 中国城市间地理距离矩阵(2024)
  • 显卡3080和4060哪个强 两款游戏性能对比
  • AWS Transit Gateway实战:构建DMZ隔离架构,实现可控的网络互通
  • AWS API Gateway 配置WAF(中国区)
  • wordpress类似的工具/seo收费标准
  • 西安品牌网站建设服务商/近期时事新闻
  • 域名解析映射到网站空间怎么做/店铺如何运营和推广
  • 南京门户网站制作/域名注册服务网站哪个好
  • wordpress淘宝客建站/如何进行网络营销
  • 环保网站建设情况报告/百度网站怎么做