Given a 2D board and a word, find if the word exists in the grid.
board = [
['A','B','C','E'],
['S','F','C','S'],
['A','D','E','E']
]
Word Search
isSolution(prefix, word)
// prefix is our built up solution
// return prefix == word
getCandidates(position, visited, board, letter)
// get unvisited adjacent positions that match
letter
backup(prefix, position, visited)
// remove last letter from previous
// remove position from visited
search(board, word, prefix, position, visited)
// return true if isSolution(prefix, word)
// for each getCandidates
// add letter(position) to prefix
// add position to visited
// search from next position
// if not found backup