classSolution{public:int Y, X;boolexist(vector<vector<char>>& board, string& word,int ind,int yy,int xx){if(ind == word.size())returntrue;if(yy <0|| yy >= Y || xx <0|| xx >= X)returnfalse;if(board[yy][xx]!= word[ind])returnfalse;char ch = board[yy][xx];
board[yy][xx]='#';bool flag =exist(board, word, ind+1, yy-1, xx);
flag = flag ||exist(board, word, ind+1, yy+1, xx);
flag = flag ||exist(board, word, ind+1, yy, xx-1);
flag = flag ||exist(board, word, ind+1, yy, xx+1);
board[yy][xx]= ch;return flag;}boolexist(vector<vector<char>>& board, string word){
Y = board.size();
X = board[0].size();for(int yy =0; yy < Y; yy++){for(int xx =0; xx < X; xx++){if(exist(board, word,0, yy, xx))returntrue;}}returnfalse;}};