C++ solution || Easy Understand
\nclass Solution {\npublic:\n    bool backtrack(vector<vector<char>>& board, string& word, int pos, int i, int j, int r, int c){\n        if(i >= r || j >= c ||
```\nclass Solution {\npublic:\n    bool backtrack(vector<vector<char>>& board, string& word, int pos, int i, int j, int r, int c){\n        if(i >= r || j >= c || i < 0 || j < 0 || word[pos] != board[i][j])\n            return false;\n    \n        if(pos == word.length()-1)\n            return true;\n        \n        board[i][j] = \'#\'; // to avoid using of this character again in the backtracking\n        if(backtrack(board, word, pos+1, i+1, j, r, c) || backtrack(board, word, pos+1, i-1, j, r, c) || backtrack(board, word, pos+1, i, j+1, r, c) || backtrack(board, word, pos+1, i, j-1, r, c))\n            return true;\n\t\n        board[i][j] = word[pos]; // Reassigning the character as backtracking is complete.\n        return false;\n    }\n    bool exist(vector<vector<char>>& board, string word) {\n        for(int i=0;i<board.size();i++)\n            for(int j=0;j<board[i].size();j++)\n                if(backtrack(board, word, 0, i, j, board.size(), board[0].size()))\n                    return true;\n        return false;\n    }\n};\n```
['Backtracking', 'C', 'C++']