单词搜索+回溯法
题目:
思考:
1.经典回溯
实现:
class Solution {
public:bool find_word(vector<vector<char>>&board,string word,int pos,int i,int j){bool ret=false;if (pos==word.size()-1) return board[i][j]==word[pos];if (board[i][j]==word[pos]){char t=board[i][j];board[i][j]='*';if (i-1>=0){ret=ret||find_word(board,word,pos+1,i-1,j);}if (j-1>=0){ret=ret||find_word(board,word,pos+1,i,j-1);}if (i+1<board.size()){ret=ret||find_word(board,word,pos+1,i+1,j);}if (j+1<board[0].size()){ret=ret||find_word(board,word,pos+1,i,j+1);}board[i][j]=t;return ret;}else{return false;}} bool exist(vector<vector<char>>& board, string word) {for (int i=0;i<board.size();i++){for (int j=0;j<board[0].size();j++){if (board[i][j]==word[0]){if (find_word(board,word,0,i,j)){return true;}}}}return false;}
};