首页 > 代码库 > Leetcode#79 Word Search
Leetcode#79 Word Search
原题地址
依次枚举起始点,DFS+回溯
代码:
1 bool dfs(vector<vector<char> > &board, int r, int c, string word) { 2 int m = board.size(); 3 int n = board[0].size(); 4 int dir[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; 5 6 if (word.empty()) 7 return true; 8 9 if (r >= 0 && r < m && c >= 0 && c < n && board[r][c] == word[0]) {10 for (int i = 0; i < 4; i++) {11 char tmp = board[r][c];12 board[r][c] = 0;13 if (dfs(board, r + dir[i][0], c + dir[i][1], word.substr(1)))14 return true;15 board[r][c] = tmp;16 }17 }18 19 return false;20 }21 22 bool exist(vector<vector<char> > &board, string word) {23 if (board.empty() || board[0].empty()) return false;24 25 int m = board.size();26 int n = board[0].size();27 28 for (int i = 0; i < m; i++)29 for (int j = 0; j < n; j++)30 if (dfs(board, i, j, word))31 return true;32 33 return false;34 }
Leetcode#79 Word Search
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。