79. Word Search 单词搜索
给定一个二维网格和一个单词,找出该单词是否存在于网格中。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
示例:
board = [['A','B','C','E'],['S','F','C','S'],['A','D','E','E'] ]给定 word = "ABCCED", 返回 true 给定 word = "SEE", 返回 true 给定 word = "ABCB", 返回 false
提示:
board
和word
中只包含大写和小写英文字母。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 单词搜索相关推荐
- 79. Word Search
leetcod79题在矩阵中寻找某个单词 """ 79. Word Search MediumShare Given a 2D board and a word, fin ...
- C++words search单词搜索的算法实现(附完整源码)
C++words search单词搜索的算法实现 C++words search单词搜索的算法实现完整源码(定义,实现,main函数测试) C++words search单词搜索的算法实现完整源码(定 ...
- 【DFS + Backtracking】LeetCode 79. Word Search
LeetCode 79. Word Search Solution1:我的答案 DFS + Backtracking class Solution { public:bool exist(vector ...
- LeetCode 79. Word Search
原题链接在这里:https://leetcode.com/problems/word-search/ 题目: Given a 2D board and a word, find if the word ...
- leetcode 79. Word Search | 79. 单词搜索(回溯+DFS)
题目 https://leetcode.com/problems/word-search/ 题解 回溯 + DFS,回溯是有后效性的,所以不能转化为 DP class Solution {int M; ...
- LeetCode 79 Word Search(单词查找)
题目链接:https://leetcode.com/problems/word-search/#/description 给出一个二维字符表,并给出一个String类型的单词,查找该单词是否出现在该二 ...
- [Leetcode][第79题][JAVA][单词搜索][DFS][回溯]
[问题描述][中等] [解答思路] 1. DFS繁琐版本 class Solution {public boolean exist(char[][] board, String word) {bool ...
- 【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 字典 ...
- java实现英文文件单词搜索系统_Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
最新文章
- 内存分配算法 之 首次适应-最佳适应
- 一年春事,桃花红了谁……
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
- 不要再问我“Java GC垃圾回收机制”了
- write()和read()
- DL之GRU:GRU算法相关论文、建立过程(基于TF)、相关思路配图集合、TF代码实现
- mysql 开放远程连接权限连不上
- UNION ALL returning wrong results?
- vue实现首屏加载等待动画 避免首次加载白屏尴尬
- itex将html转成pdf加水印,itext操作PDF文件添加水印
- Python3 基础学习笔记 C01【变量和简单数据类型】
- C语言 · 数的读法
- 2017.10.28 管道取珠 失败总结
- python 编程效率_五个Python编程Tips,帮你提高编码效率
- 【2020】六家云厂商价格比较:AWS、阿里云、Azure、Google Cloud、华为云、腾讯云
- 前端传递数组给后端,多个相同key,对应不同值
- Java设计登录界面
- 如何建语料库_如何建立自己的语料库?
- 【业务】5个顶级案例教你实现最牛供应链管理
- Ubuntu问题:E45: ‘readonly‘ option is set (add ! to override)错误解决
热门文章
- hihoCoder #1872 : Pythagorean triple
- 睡个好觉的 12 条军规
- 游戏设计、原型与开发:基于Unity与C#从构思到实现pdf
- 【BZOJ3772】精神污染
- 07_UI基础_UITableView实战- 支付宝口碑
- 机器学习笔记——K-means
- 2010世界杯主题曲夏奇拉献唱《Waka Waka》
- mysql freebuf_浅析mysql存储过程
- redis提高查询速度_面试小点-MySQL 的两种索引方法如何提高查询速度
- Java写入大字符串到oracle数据库_java程序如何提高oracle百万级数据的insert效率