Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 79. Word Search
題目:

解答:
class Solution {
public:
bool exist(vector<vector<char>>& board, string word) {
int m = board.size();
int n = board[0].size();
auto dfs = [&](this auto&& dfs, int i, int j, int k) -> bool {
if (k == word.size()) {
return true;
}
if (i < 0 || i >= m || j < 0 || j >= n || board[i][j] != word[k]) {
return false;
}
char t = board[i][j];
board[i][j] = '#';
bool found = dfs(i + 1, j, k + 1) ||
dfs(i - 1, j, k + 1) ||
dfs(i, j + 1, k + 1) ||
dfs(i, j - 1, k + 1);
board[i][j] = t;
return found;
};
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
if (dfs(i, j, 0)) {
return true;
}
}
}
return false;
}
};