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

单词搜索- python-dfs剪枝

题目:

思路:

参考:https://leetcode.cn/problems/word-search/solutions/2361646/79-dan-ci-sou-suo-hui-su-qing-xi-tu-jie-5yui2/?envType=study-plan-v2&envId=top-100-liked

深度优先搜索(DFS)+ 剪枝

  • 深度优先搜索:即暴力法遍历矩阵中所有字符串可能性。DFS 通过递归,先朝一个方向搜到底,再回溯至上个节点,沿另一个方向搜索,以此类推。
  • 剪枝:在搜索中,遇到“这条路不可能和目标字符串匹配成功”的情况,例如当前矩阵元素和目标字符不匹配、或此元素已被访问,则应立即返回,从而避免不必要的搜索分支。

代码:

class Solution: def exist(self, board: List[List[str]], word: str) -> bool: def dfs(i,j,k): if not 0<=i<len(board) or not 0<=j<len(board[0]) or board[i][j] != word[k]: return False if k == len(word)-1: return True board[i][j] = '' res = dfs(i+1,j,k+1) or dfs(i-1,j,k+1) or dfs(i,j+1,k+1) or dfs(i,j-1,k+1) board[i][j] = word[k] return res for i in range(len(board)): for j in range(len(board[0])): if dfs(i,j,0):return True return False

算法解析:

  • 递归参数:当前元素在矩阵board中的行列索引ij,当前目标字符在word中的索引k
  • 终止条件:

    • false:​​​​​​​​​​​​​​(1) 行或列索引越界(2) 当前矩阵元素与目标字符不同(3) 当前矩阵元素已访问过 ( (3) 可合并至 (2) )

    • true:k = len(word) - 1,即字符串word已全部匹配。

  • 递推工作:​​​​​​​

    • 标记当前矩阵元素: 将board[i][j]修改为空字符'',代表此元素已访问过,防止之后搜索时重复访问。
    • 搜索下一单元格: 朝当前元素的 上、下、左、右 四个方向开启下层递归,使用 或 连接 (代表只需找到一条可行路径就直接返回,不再做后续 DFS ),并记录结果至 res 。

    • 还原当前矩阵元素: 将board[i][j]元素还原至初始值,即word[k]
  • 返回值:返回布尔量res,代表是否搜索到目标字符串。
http://www.rkmt.cn/news/158204.html

相关文章:

  • 如何在日常渗透中实现通杀漏洞挖掘?
  • 2026最新研究:如何在隐私保护环境下实现高效知识图谱问答
  • 2025年度成都万象城优质餐厅排行榜:值得打卡的万象城可口美食餐饮企业有哪些? - 工业设备
  • coze使用其他AI模型作为大模型节点,这里以gpt5.1为例
  • FreeBSD 11.0-RELEASE 发布亮点与升级指南
  • YOLO动态链接库的编译与调用详解
  • 今天来和大家聊一个当下科技领域特别火爆的概念——AI Agent!
  • 制氮机公司推荐哪家?2025制氮机厂家排名TOP10盘点 - 栗子测评
  • 2025杭州民办高中师资揭秘:这几所杭州民办高中口碑好 - 栗子测评
  • FPC软排线厂家哪家好?2025FPC生产厂家实力榜单 - 栗子测评
  • 帕金森病增强手绘数据集-健康与患者手绘图像对比研究-医学影像人工智能训练素材-训练和验证帕金森病辅助诊断算法-基于手绘图像的疾病特征提取方法-提高诊断准确率
  • MindSpore报错:query_embeds传参异常解决
  • PyTorch中四大Hook函数详解与Grad-CAM应用
  • 通过nohup 执行与关闭
  • Open-AutoGLM一键部署实战(手把手教学,新手也能当天跑通)
  • 计算机入门基础与核心概念精讲
  • 揭秘Open-AutoGLM模型替换内幕:如何避免90%开发者踩的坑
  • 【Open-AutoGLM实战排错手册】:从CORS到跨域,彻底解决网页调用难题
  • 使用tf.image.resize_bilinear进行图像双线性插值缩放
  • 锂电池连接器厂家?2025防水连接器公司推荐榜单 - 栗子测评
  • 2025年AI大模型工程师终极学习指南:全网首发实战项目+资源大合集,不可错过!
  • MiniCPM-Llama3-V-2.5-int4大模型部署指南
  • SQL检索数据实用技巧与多场景应用
  • Open-AutoGLM本地化部署全流程,打造你的随身AI推理引擎
  • 自主掌控数字流程,灵活可定制的表单与活动管理源码
  • 弹药及特殊物资仓库空间智能感知与管控决策推演关键技术研究
  • Python最常用的环境有哪些?
  • 学长亲荐10个AI论文软件,本科生搞定毕业论文+格式规范!
  • TensorFlow-GPU与Keras版本兼容安装指南
  • 大模型上下文管理秘籍:5种实用技术,轻松提升AI应用性能!