【Leetcode】79.单词搜索
题目
给定一个二维网格和一个单词,找出该单词是否存在于网格中。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
示例:
board =
[
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]
给定 word = "ABCCED", 返回 true.
给定 word = "SEE", 返回 true.
给定 word = "ABCB", 返回 false.
题解
这个题目拿到题目就应该能想到是用DFS的题目,因为这完完全全就是DFS,没有做任何的变形,关于DFS,这里就不重复讲解。
推荐一个b站上的视频,不熟悉的同学可以回顾一下。
https://www.bilibili.com/vide...
熟悉的同学直接看代码吧
java
class Solution {public boolean exist(char[][] board, String word) {if (word == null || word.length() == 0) {return true;}char[] chs = word.toCharArray();for (int i = 0; i < board.length; i++) {for (int j = 0; j < board[0].length; j++) {if (dfs(board, chs, 0, i, j)) {return true;}}}return false;}private boolean dfs(char[][] board, char[] words, int index, int x, int y) {if (index == words.length) {return true;}if (x < 0 || x == board.length || y < 0 || y == board[0].length) {return false;}if (board[x][y] != words[index]) {return false;}char source = board[x][y];board[x][y] = '\0';boolean exist = dfs(board, words, index + 1, x, y + 1)|| dfs(board, words, index + 1, x, y - 1)|| dfs(board, words, index + 1, x + 1, y)|| dfs(board, words, index + 1, x - 1, y);board[x][y] = source;return exist;}
}
python
class Solution:def dfs(self, board, word, index, x, y):if not board or index == len(word):return Trueif x < 0 or x == len(board) or y < 0 or y == len(board[0]):return Falseif board[x][y] != word[index]:return Falsesource = board[x][y]board[x][y] = '\0'exist = self.dfs(board, word, index + 1, x, y + 1) or self.dfs(board, word, index + 1, x, y - 1) or self.dfs(board, word, index + 1, x + 1, y) or self.dfs(board, word, index + 1, x - 1, y)board[x][y] = sourcereturn existdef exist(self, board, word):""":type board: List[List[str]]:type word: str:rtype: bool"""if len(word) == 0:return Falsefor i in range(len(board)):for j in range(len(board[0])):if self.dfs(board, word, 0, i, j):return Truereturn False
热门阅读
- MySQL索引背后的数据结构及算法原理
- 【Leetcode】78. 子集
- 【Leetcode】77. 组合
【Leetcode】79.单词搜索相关推荐
- Leetcode 79. 单词搜索
Leetcode 79. 单词搜索 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-search/ 本质上 ...
- LeetCode 79 单词搜索
LeetCode 79 单词搜索 题目链接 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水 ...
- Leetcode 79.单词搜索
Time: 20190901 Type: Medium 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&q ...
- java实现英文文件单词搜索系统_Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
- LeetCode 79. 单词搜索【c++/java详细题解】
目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定一个 m x n 二维字符网格 board和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则, ...
- LeetCode 79. 单词搜索 | Python
文章目录 79. 单词搜索 题目 解题思路 代码实现 实现结果 总结 79. 单词搜索 题目来源:https://leetcode-cn.com/problems/word-search 题目 给定一 ...
- Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
- LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- LeetCode - #79 单词搜索(Top 100)
前言 本题为 LeetCode 前 100 高频题 我们社区陆续会将顾毅(Netflix 增长黑客,<iOS 面试之道>作者,ACE 职业健身教练.)的 Swift 算法题题解整理为文字版 ...
- LeetCode 79. 单词搜索(回溯DFS)
1. 题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个 ...
最新文章
- Linux---一台主机部署多版本mysql服务和mysql实例
- Educational Codeforces Round 103 (Rated for Div. 2)A~E解题报告
- 教育部:麻省理工学院2019年本科生未招收一名中国大陆的学生不属实
- pr下雪下雨_图像增强:下雨,下雪。 如何修改照片以训练自动驾驶汽车
- 3D Vision公开课 | 移动机器人视觉三维感知的现在与将来
- 蔚来Q3营收近百亿、毛利率20.3%,预计明年下半年推出2款新车
- [转载] 七龙珠第一部——第021话 克林危险
- Linux中缺32位运行库steam,Steam游戏必备运行库
- ffmpeg安装教程
- LINUX串口驱动安装 一条龙服务
- 关于双层原子台阶的形成机制
- asic面试题目 英伟达_英伟达笔试题目ASIC|英伟达笔试题
- 操作系统1-6章作业
- win10截图软件工具
- java epics_Visual Paradigm敏捷开发教程(7):如何管理Epics
- 欢迎各位小伙伴来领取免费的安卓教程
- 中兴通讯某产品大规模敏捷转型实践
- 无法更改edge浏览器启动页(主页)\新标签页
- python实验五答案_Python实验五
- 最全超实用的网站SEO优化方案步骤解析
热门文章
- svn cleanup失败
- 《Linux调优工具oprofile的演示分析》
- Android 进阶 Fragment 介绍和使用 (一)
- 谈新公司的人才队伍建设
- TP5 实现微信支付和支付宝支付
- 区分docker stack/service/task
- hdu4279 找规律+小想法
- 两个整数相加减是否溢出
- 【Android 逆向】Android 中常用的 so 动态库 ( 拷贝 /system/lib/ 中的 Android 系统 so 动态库 )
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★