3. What will be the output of the following Go code snippet for word search?
grid := [][]byte{{'A','B','C','E'},{'S','F','C','S'},{'A','D','E','E'}}
word := "ABCCED"
found := exist(grid, word)
fmt.Println(found)
func exist(board [][]byte, word string) bool {
for i := 0; i < len(board); i++ {
for j := 0; j < len(board[0]); j++ {
if backtrack(board, word, i, j, 0) {
return true
}
}
}
return false
}
func backtrack(board [][]byte, word string, row, col, index int) bool {
if index == len(word) {
return true
}
if row < 0 || row >= len(board) || col < 0 || col >= len(board[0]) || board[row][col] != word[index] {
return false
}
temp := board[row][col]
board[row][col] = '#'
found := backtrack(board, word, row+1, col, index+1) ||
backtrack(board, word, row-1, col, index+1) ||
backtrack(board, word, row, col+1, index+1) ||
backtrack(board, word, row, col-1, index+1)
board[row][col] = temp
return found
}