LeetCode 中级 - 单词搜索
单词搜索
给定一个二维网格和一个单词,找出该单词是否存在于网格中。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
示例:
board =
[['A','B','C','E'],['S','F','C','S'],['A','D','E','E']
]给定 word = "ABCCED", 返回 true.
给定 word = "SEE", 返回 true.
给定 word = "ABCB", 返回 false.
分析
和前面 “岛屿的个数” 代码基本一致,对每一个匹配的字符,判断四周是否匹配,如有匹配的就再向四周扩散。
代码
class Solution {//遍历回溯,采取一个特殊处理:如果匹配到相同字符,则将该字符先置为'0',回溯时恢复原字符,以免重复使用public boolean exist(char[][] board, String word) {if(board.length==0){return false;}for(int i=0;i<board.length;i++){for(int j=0;j<board[0].length;j++){if(dfs(board,word,i,j,0)){return true;}}}return false;}private boolean dfs(char[][] board,String word,int i,int j,int index){if(index>=word.length()){return true;}if(i<0 || i>=board.length ||j<0||j>=board[0].length){return false;}if(board[i][j] != word.charAt(index)){return false;}char temp = board[i][j];board[i][j]='0';boolean res = dfs(board,word,i-1,j,index+1) || dfs(board,word,i+1,j,index+1)||dfs(board,word,i,j-1,index+1)||dfs(board,word,i,j+1,index+1);board[i][j]=temp;return res;}}
LeetCode 中级 - 单词搜索相关推荐
- LeetCode 212. 单词搜索 II(Trie树+DFS)
1. 题目 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&qu ...
- Leetcode 79.单词搜索
Time: 20190901 Type: Medium 题目描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&q ...
- LeetCode之单词搜索(回溯法求解)
题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内 ...
- Leetcode 79. 单词搜索
Leetcode 79. 单词搜索 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/word-search/ 本质上 ...
- LeetCode 79 单词搜索
LeetCode 79 单词搜索 题目链接 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水 ...
- LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...
- leetcode: 212. 单词搜索II
212. 单词搜索II 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/word-search-ii 给定一个 m x n 二维字符网格 board和 ...
- java实现英文文件单词搜索系统_Java实现 LeetCode 79 单词搜索
79. 单词搜索 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格. ...
- LeetCode 79. 单词搜索【c++/java详细题解】
目录 1.题目 2.思路 3.c++代码 4.java代码 1.题目 给定一个 m x n 二维字符网格 board和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则, ...
最新文章
- bitcoin转账api,python3.7
- 获取网页源代码的最简单办法
- Angular Component 开发时属性和运行时属性的对照
- xml格式是什么示例_什么是对抗示例?
- 微软最新GDI漏洞MS08-052安全解决方案
- 信息学奥赛一本通C++语言——1088:分离整数的各个数
- java必会的英语单词
- 设计灵感案例|教你图像在海报中可以如何摆放!
- python 从小白到大牛这本书好嘛_《Python从小白到大牛》又一本零基础入门书
- matlab如何仿真递推型dft算法,并联型有源滤波器的设计与仿真
- 男人,得有足够征服女人的本钱
- 2022江苏省安全员A证考题及答案
- 高级OS(十五) - 中断机制以及中断上下部运行和内核代码分析
- Android模拟器黑屏
- gitee 链接报错
- 【突变检验方法二】MATLAB实现贝叶斯突变检测
- java星际密码问题
- java调用python 踩的坑
- PyPy 为什么会比 CPython 还要快?
- ctf pwn 萌新学习记录 基本rop(题目来自Wiki)