Java, Simple with Explanation!
Hello world!  Didn\'t see anyone else explaining this. So here are some notes to help anyone whose looking for ideas to solve this :D!\n\nIDEA:\n   Find each wo
Hello world!  Didn\'t see anyone else explaining this. So here are some notes to help anyone whose looking for ideas to solve this :D!\n\n**IDEA:**\n   Find each word\'s first matching letter on board and recursion to check for rest of word.\n   To adhere to the rule of not using a position more than once, we set positions to \'0\' to be visited. \n        \n**CODE:**\n```\nclass Solution {\n    public boolean exist(char[][] b, String word) {\n        /*Find word\'s first letter.  Then call method to check it\'s surroundings */\n        for(int r=0; r<b.length; r++)\n            for(int c=0; c<b[0].length; c++)\n                if(b[r][c]==word.charAt(0) && help(b,word,0,r,c))\n                    return true;\n        \n        return false;\n    }\n    \n    public boolean help(char[][] b, String word, int start, int r, int c){\n        /* once we get past word.length, we are done. */\n        if(word.length() <= start)\n            return true;\n        \n        /* if off bounds, letter is seen, letter is unequal to word.charAt(start) return false */\n        if(r<0 ||c<0 || r>=b.length || c>=b[0].length || b[r][c]==\'0\' || b[r][c]!=word.charAt(start))\n            return false;\n        \n        /* set this board position to seen. (Because we can use this postion) */\n        char tmp = b[r][c];\n        b[r][c] = \'0\';\n        \n        /* recursion on all 4 sides for next letter, if works: return true */\n        if(help(b,word,start+1,r+1,c) ||\n          help(b,word,start+1,r-1,c) ||\n          help(b,word,start+1,r,c+1) ||\n          help(b,word,start+1,r,c-1))\n            return true;\n        \n        //Set back to unseen\n        b[r][c] = tmp;\n        \n        return false;\n    }\n}\n```
['Java']