22.Word Search
Input: board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
Output: trueInput: board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"
Output: trueInput: board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"
Output: falseSolution: (DFS)
class Solution
{
public:
bool dfs(vector<vector<char>> &board, string word, int i, int j, int idx)
{
if (idx == word.length())
{
return true;
}
if (i < 0 || i >= board.size() || j < 0 || j >= board[0].size() || board[i][j] != word[idx])
{
return false;
}
char temp = board[i][j];
board[i][j] = ' ';
if (dfs(board, word, i + 1, j, idx + 1))
{
return true;
}
if (dfs(board, word, i - 1, j, idx + 1))
{
return true;
}
if (dfs(board, word, i, j + 1, idx + 1))
{
return true;
}
if (dfs(board, word, i, j - 1, idx + 1))
{
return true;
}
board[i][j] = temp;
return false;
}
bool exist(vector<vector<char>> &board, string word)
{
for (int i = 0; i < board.size(); i++)
{
for (int j = 0; j < board[i].size(); j++)
{
if (word[0] == board[i][j])
{
if (dfs(board, word, i, j, 0))
{
return true;
}
}
}
}
return false;
}
};Last updated


