//自己复习用的
class Solution {
public:
bool exist(vector<vector<char>>& board, string word)
{
m = board.size(); n = board[0].size();
char c = word[0];
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
// if(board[i][j] == c)
// {
// return findchar(board, word, i, j, 0);
// }
if (findchar(board, word, i, j, 0)) return true;
}
}
return false;
}
int m, n;
bool findchar(vector<vector<char>>& board, string word, int x, int y, int idx)
{
m = board.size(); n = board[0].size();
if(x < 0 || y < 0 || x >= m ||
y >= n || board[x][y] != word[idx]) return false;
if(idx == word.length() - 1) return true;
board[x][y] = ' ';
if(findchar(board, word, x + 1, y, idx + 1) ||
findchar(board, word, x - 1, y, idx + 1) ||
findchar(board, word, x, y + 1, idx + 1) ||
findchar(board, word, x, y - 1, idx + 1)) return true;
board[x][y] = word[idx];
return false;
}
};