给定一个二维网格和一个单词,找出该单词是否存在于网格中。

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。

示例:

board =
[['A','B','C','E'],['S','F','C','S'],['A','D','E','E']
]给定 word = "ABCCED", 返回 true
给定 word = "SEE", 返回 true
给定 word = "ABCB", 返回 false

提示:

  • boardword 中只包含大写和小写英文字母。
  • 1 <= board.length <= 200
  • 1 <= board[i].length <= 200
  • 1 <= word.length <= 10^3

DFS+回溯

看到二维表就想到DFS,遍历整个二维表,当前位置为word开头字母时才执行DFS,同时还要加一个vis数组表示已访问的位置,然后加一些判断条件剪枝。

Code

 def exist(self, board: List[List[str]], word: str) -> bool:def dfs(x, y, tmp):nonlocal flagif tmp == word:flag = Truereturnif not (0 <= x < rowLength and 0 <= y < colLength):returnif flag or vis[x][y] or board[x][y] != word[len(tmp)]:returnvis[x][y] = Truedfs(x + 1, y, tmp + board[x][y])dfs(x - 1, y, tmp + board[x][y])dfs(x, y + 1, tmp + board[x][y])dfs(x, y - 1, tmp + board[x][y])vis[x][y] = FalserowLength, colLength, flag = len(board), len(board[0]), Falsevis = [[False for _ in range(colLength)] for _ in range(rowLength)]for i in range(rowLength):for j in range(colLength):if board[i][j] == word[0]:dfs(i, j, '')if flag:return flagreturn flag

79. Word Search 单词搜索相关推荐

  1. 79. Word Search

    leetcod79题在矩阵中寻找某个单词 """ 79. Word Search MediumShare Given a 2D board and a word, fin ...

  2. C++words search单词搜索的算法实现(附完整源码)

    C++words search单词搜索的算法实现 C++words search单词搜索的算法实现完整源码(定义,实现,main函数测试) C++words search单词搜索的算法实现完整源码(定 ...

  3. 【DFS + Backtracking】LeetCode 79. Word Search

    LeetCode 79. Word Search Solution1:我的答案 DFS + Backtracking class Solution { public:bool exist(vector ...

  4. LeetCode 79. Word Search

    原题链接在这里:https://leetcode.com/problems/word-search/ 题目: Given a 2D board and a word, find if the word ...

  5. leetcode 79. Word Search | 79. 单词搜索(回溯+DFS)

    题目 https://leetcode.com/problems/word-search/ 题解 回溯 + DFS,回溯是有后效性的,所以不能转化为 DP class Solution {int M; ...

  6. LeetCode 79 Word Search(单词查找)

    题目链接:https://leetcode.com/problems/word-search/#/description 给出一个二维字符表,并给出一个String类型的单词,查找该单词是否出现在该二 ...

  7. [Leetcode][第79题][JAVA][单词搜索][DFS][回溯]

    [问题描述][中等] [解答思路] 1. DFS繁琐版本 class Solution {public boolean exist(char[][] board, String word) {bool ...

  8. 【CODE】Unique Paths Word Search (DFS dp 字典树)

    目录 62. Unique Paths 63. Unique Paths II 980. Unique Paths III 79. Word Search 212. Word Search II 字典 ...

  9. java实现英文文件单词搜索系统_Java实现 LeetCode 79 单词搜索

    79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...

最新文章

  1. 内存分配算法 之 首次适应-最佳适应
  2. 一年春事,桃花红了谁……
  3. 通过文件读写方式实现Matlab和Modelsim的联合仿真
  4. 不要再问我“Java GC垃圾回收机制”了
  5. write()和read()
  6. DL之GRU:GRU算法相关论文、建立过程(基于TF)、相关思路配图集合、TF代码实现
  7. mysql 开放远程连接权限连不上
  8. UNION ALL returning wrong results?
  9. vue实现首屏加载等待动画 避免首次加载白屏尴尬
  10. itex将html转成pdf加水印,itext操作PDF文件添加水印
  11. Python3 基础学习笔记 C01【变量和简单数据类型】
  12. C语言 · 数的读法
  13. 2017.10.28 管道取珠 失败总结
  14. python 编程效率_五个Python编程Tips,帮你提高编码效率
  15. 【2020】六家云厂商价格比较:AWS、阿里云、Azure、Google Cloud、华为云、腾讯云
  16. 前端传递数组给后端,多个相同key,对应不同值
  17. Java设计登录界面
  18. 如何建语料库_如何建立自己的语料库?
  19. 【业务】5个顶级案例教你实现最牛供应链管理
  20. Ubuntu问题:E45: ‘readonly‘ option is set (add ! to override)错误解决

热门文章

  1. hihoCoder #1872 : Pythagorean triple
  2. 睡个好觉的 12 条军规
  3. 游戏设计、原型与开发:基于Unity与C#从构思到实现pdf
  4. 【BZOJ3772】精神污染
  5. 07_UI基础_UITableView实战- 支付宝口碑
  6. 机器学习笔记——K-means
  7. 2010世界杯主题曲夏奇拉献唱《Waka Waka》
  8. mysql freebuf_浅析mysql存储过程
  9. redis提高查询速度_面试小点-MySQL 的两种索引方法如何提高查询速度
  10. Java写入大字符串到oracle数据库_java程序如何提高oracle百万级数据的insert效率