Word Search
来源:互联网 发布:贵阳大数据是做什么的 编辑:程序博客网 时间:2024/05/20 11:52
Given a 2D board and a word, find if the word exists in the grid.
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 =
[
[‘A’,’B’,’C’,’E’],
[‘S’,’F’,’C’,’S’],
[‘A’,’D’,’E’,’E’]
]
word = “ABCCED”, -> returns true,
word = “SEE”, -> returns true,
word = “ABCB”, -> returns false.
Subscribe to see which companies asked this question
public class Solution { //this is a good problem public boolean exist(char[][] board, String word) { if(board == null || word == null || word.length() == 0) return false; for(int i =0; i < board.length; i ++) { for(int j = 0; j < board[0].length; j++) { if(dfs(board, i, j, word, 0, new boolean[board.length][board[0].length])) return true; } } return false; } private boolean dfs(char[][] board, int i, int j, String word, int index, boolean[][] isVisited) { if(word.length() == index) return true; if(i < 0 || j < 0 || i >= board.length || j >= board[0].length || board[i][j] != word.charAt(index) || isVisited[i][j]) return false; isVisited[i][j] = true; if(dfs(board, i - 1, j, word, index + 1, isVisited)) return true; if( dfs(board, i + 1, j, word, index + 1, isVisited)) return true; if( dfs(board, i, j - 1, word, index + 1, isVisited)) return true; if( dfs(board, i, j + 1, word, index + 1, isVisited)) return true; //this statement is equal to the four statement above // boolean res = dfs(board, i - 1, j, word, index + 1, isVisited) || dfs(board, i + 1, j, word, index + 1, isVisited) || // dfs(board, i, j - 1, word, index + 1, isVisited) || dfs(board, i, j + 1, word, index + 1, isVisited); isVisited[i][j] = false; return false; // return res; }}
0 0
- Word Search
- Word Search
- word search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- Word Search
- 初级程序员经典面试题 NSDictionary字典类型的错误经典实例
- 生成json文件
- 全球数据共享网站集合
- CoreData 之间的关系
- 【黑马程序员】C语言字符串
- Word Search
- STM32l151低功耗芯片串口通信(HAL库)
- 你选择做个什么样的程序员
- 将两个字符串连接起来,不要用strcat函数。
- 在携程使用TestNG/JUnit 并行跑Appium 有两个关键的地方
- Linux安装mariadb新版本
- 习作-知乎收藏夹观察者(上)
- Java编程准备:了解Java
- Mybatis入门