leetCode 79.Word Search (词搜索) 解题思路和方法
来源:互联网 发布:幺正矩阵 编辑:程序博客网 时间:2024/06/05 13:26
The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or vertically neighboring. The same letter cell may not be used more than once.
For example,
Given board =
[ ["ABCE"], ["SFCS"], ["ADEE"]]word =
"ABCCED"
, -> returns true
,word =
"SEE"
, -> returns true
,word =
"ABCB"
, -> returns false
.思路:此题意思是下个字符必须与上个字符相邻,且不能重复使用。代码上难度不大,最主要的是控制搜索的方向,分别向四个方向搜索即可。
代码如下:
public class Solution { boolean[][] b; public boolean exist(char[][] board, String word) { if(word.length() == 0){ return true; } for(int i = 0; i < board.length;i++){ for(int j = 0; j < board[0].length; j++){ if(board[i][j] == word.charAt(0)){ b = new boolean[board.length][board[0].length]; if(search(board,i,j,b,0,word)){ return true; } } } } return false; } //根据首字母的i,j位置查找word private boolean search(char[][] board,int i,int j,boolean[][] b,int index,String word){ if(board[i][j] != word.charAt(index)){//字符不相等。返回false return false; } if(index == word.length() - 1){//如果到达最后一个,返回true return true; } b[i][j] = true;//标记已使用 if(i > 0 && !b[i-1][j] && search(board,i-1,j,b,index+1,word)){//如果i>0,且i-1的值没有被使用,搜索 return true; } if(i < board.length-1 && !b[i+1][j] && search(board,i+1,j,b,index+1,word)){//如果没有边界,且i+1的值没有被使用,搜索 return true; } if(j > 0 && !b[i][j-1] && search(board,i,j-1,b,index+1,word)){//如果j>0,且j-1的值没有被使用,搜索 return true; } if(j < board[0].length-1 && !b[i][j+1] && search(board,i,j+1,b,index+1,word)){//如果没到边界,且j+1的值没有被使用,搜索 return true; } b[i][j] = false; return false; } }
0 0
- leetCode 79.Word Search (词搜索) 解题思路和方法
- leetCode 95.Unique Binary Search Trees II (唯一二叉搜索树) 解题思路和方法
- leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法
- leetCode 34.Search for a Range (搜索范围) 解题思路和方法
- leetCode 35.Search Insert Position (搜索插入位置) 解题思路和方法
- leetCode 74.Search a 2D Matrix(搜索二维矩阵) 解题思路和方法
- leetCode 96.Unique Binary Search Trees (唯一二叉搜索树) 解题思路和方法
- leetCode 98.Validate Binary Search Tree (有效二叉搜索树) 解题思路和方法
- leetCode 99.Recover Binary Search Tree(修正二叉搜索树) 解题思路和方法
- [leetcode] 79. Word Search 解题报告
- [Leetcode] 79. Word Search 解题报告
- leetCode 33.Search in Rotated Sorted Array(排序旋转数组的查找) 解题思路和方法
- leetCode 58.Length of Last Word (最后单词的长度) 解题思路和方法
- Leetcode Word Search 解题报告
- 【LeetCode】Word Search 解题报告
- 【LeetCode】Word Search 解题报告
- [LeetCode] Word Search 解题报告
- leetCode 89.Gray Code (格雷码) 解题思路和方法
- 第四章
- 程序员必须知道的10大基础算法及讲解
- 统计难题
- js关联数组
- lucene4.5简单实例
- leetCode 79.Word Search (词搜索) 解题思路和方法
- imageloader详解
- 大数据,云计算,物联网和移动互联网关系图解
- java即时通信,推送技术详解
- poj 1011 Sticks 经典dfs+剪枝
- HDU 5289 Assignment (RMQ+二分)
- 可视化实验2——用D3做图表
- 开启生鲜的盈利时代
- hdu素数环(搜索入门题)