[Leetcode]Word Search
来源:互联网 发布:汽车电脑数据编程设备 编辑:程序博客网 时间:2024/06/03 16:41
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 =
[ ["ABCE"], ["SFCS"], ["ADEE"]]word =
"ABCCED"
, -> returns true
,word =
"SEE"
, -> returns true
,word = "ABCB"
, -> returns false
.
在矩阵中找是否存在某个单词~用DFS来解~先在矩阵board中找到word的第一个字母,然后从这个元素出发,往上下左右深度搜索是否有相等于word的字符串~注意要维护一个数组used来标记元素是否已经被访问过了
class Solution: # @param board, a list of lists of 1 length string # @param word, a string # @return a boolean def exist(self, board, word): if board is None or len(board) == 0 or len(board[0]) == 0: return False used = [[False] * len(board[0]) for i in xrange(len(board))] for i in xrange(len(board)): for j in xrange(len(board[0])): if board[i][j] == word[0]: if self.helper(board, word, 0, i, j, used): return True return False def helper(self, board, word, index, i, j, used): if index == len(word): return True if i < 0 or j < 0 or i >= len(board) or j >= len(board[0]) or used[i][j] or word[index] != board[i][j]: return False used[i][j] = True res = self.helper(board, word, index + 1, i + 1, j, used) or self.helper(board, word, index + 1, i - 1, j, used) or self.helper(board, word, index + 1, i, j + 1, used) or self.helper(board, word, index + 1, i, j - 1, used) used[i][j] = False return res
0 0
- LeetCode: Word Search
- [Leetcode] Word Search
- LeetCode : Word Search
- Leetcode: Word Search
- [LeetCode] Word Search
- leetcode 56: Word Search
- Leetcode 79 Word Search
- [leetcode ] word search
- [Leetcode] Word Search
- [LeetCode]Word Search
- Leetcode Word Search
- [leetcode]word search
- [leetcode] Word Search
- LeetCode-Word Search
- [LeetCode] Word Search
- LeetCode - Word Search
- leetcode word search
- LeetCode:Word Search
- sqlite数据类型
- PHP 相关转发
- 5-key-differences-between-hiring-a-coder-and-a-developer
- JavaScript 闭包究竟是什么
- uva 532 Dungeon Master(BFS)
- [Leetcode]Word Search
- hdu4763---Theme Section
- C++ 之无穷大
- 线程调度
- spring @Autowired vs @Resource 区别
- 使用Memory Analyzer tool(MAT)分析内存泄漏
- 初学OC的笔记------面向对象一些基础
- appcompat_v7引入后出现的一系列问题的解决
- Android批量打包提速 - 1分钟900个市场不是梦