[LeetCode] Word Search

简介: A typical DFS problem. Just go ahead... 1 class Solution { 2 public: 3 bool exist(vector& board, string word) { 4 int m = board.

A typical DFS problem. Just go ahead...

 1 class Solution {
 2 public:
 3     bool exist(vector<vector<char>>& board, string word) {
 4         int m = board.size(), n = board[0].size();
 5         for (int i = 0; i < m; i++)
 6             for (int j = 0; j < n; j++)
 7                 if (search(board, i, j, word.c_str()))
 8                     return true;
 9         return false;
10     }
11 private:
12     bool search(vector<vector<char>>& board, int r, int c, const char* word) {
13         if (!word[0]) return true;
14         int m = board.size(), n = board[0].size();
15         if (r < 0 || r >= m || c < 0 || c >= n || board[r][c] != word[0]) return false;
16         board[r][c] = '$';
17         if (search(board, r - 1 ,c, word + 1) || search(board, r + 1, c, word + 1) ||
18             search(board, r, c - 1, word + 1) || search(board, r, c + 1, word + 1))
19             return true;
20         board[r][c] = word[0];
21         return false;
22     }
23 };

 

目录
相关文章
Leetcode 74. Search a 2D Matrix
这道题很简单,为此专门写篇博客其实算博客凑数了。给你一个每一行每一列都是增序,且每一行第一个数都大于上一行末尾数的矩阵,让你判断某个数在这个矩阵中是否存在。 假设矩阵是m*n,扫一遍的时间复杂度就是O(m*n),题目中给出的这么特殊的矩阵,时间复杂度可以降到O(m+n),具体代码如下,写的比较挫。
95 1
LeetCode 318. Maximum Product of Word Lengths
给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母。你可以认为每个单词只包含小写字母。如果不存在这样的两个单词,返回 0。
89 0
LeetCode 318. Maximum Product of Word Lengths
LeetCode 290. Word Pattern
给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。
55 0
LeetCode 290. Word Pattern
LeetCode 212. Word Search II
给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。
84 0
LeetCode 212. Word Search II
|
索引
LeetCode 81. Search in Rotated Sorted Array II
假设按升序排序的数组在事先未知的某个枢轴处旋转。 (例如, [0,0,1,2,2,5,6] 可能变成 [2,5,6,0,0,1,2]). 给定一个要搜索的目标值T, 如果该目标值能在数组中找到则返回true,否则返回false。
103 0
LeetCode 81. Search in Rotated Sorted Array II
|
索引
LeetCode 79. Word Search
给定一个2D板和一个单词,找出该单词是否存在于网格中。 该单词可以由顺序相邻的单元的字母构成,其中“相邻”单元是水平或垂直相邻的单元。 相同的字母单元格不得多次使用。
81 0
LeetCode 79. Word Search
|
算法
LeetCode 74. Search a 2D Matrix
编写一个有效的算法,搜索m×n矩阵中的值。 此矩阵具有以下属性: 每行中的整数从左到右排序. 每行的第一个整数大于前一行的最后一个整数.
85 0
LeetCode 74. Search a 2D Matrix
|
算法 Python
LeetCode 108. 将有序数组转换为二叉搜索树 Convert Sorted Array to Binary Search Tree
LeetCode 108. 将有序数组转换为二叉搜索树 Convert Sorted Array to Binary Search Tree
|
机器学习/深度学习
Leetcode-Medium 96.Unique Binary Search Trees
Leetcode-Medium 96.Unique Binary Search Trees
105 0
|
算法 Python
Leetcode-Medium 98. Validate Binary Search Tree
Leetcode-Medium 98. Validate Binary Search Tree
134 0