Leetcode 79. 单词搜索

79. 单词搜索 - 力扣(LeetCode)

 

 思路 还是回溯

func exist(board [][]byte, word string) bool { 	if len(board) < 1 || len(board[0]) > 6 || len(word) > 15 || len(word) < 1 { 		return false 	} 	var backTracking func(board [][]byte, x, y int, wordIndex int, temp string) bool 	backTracking = func(board [][]byte, x, y int, wordIndex int, temp string) bool { 		if wordIndex == len(word) { 			if temp == word { 				return true 			} else { 				return false 			} 		}  		if x >= 0 && x < len(board) && y >= 0 && y < len(board[0]) && board[x][y] == byte(word[wordIndex]) { 			temp = temp + string(board[x][y]) 			board[x][y] += 100 			res1 := backTracking(board, x+1, y, wordIndex+1, temp) 			res2 := backTracking(board, x-1, y, wordIndex+1, temp) 			res3 := backTracking(board, x, y+1, wordIndex+1, temp) 			res4 := backTracking(board, x, y-1, wordIndex+1, temp) 			board[x][y] -= 100 			return res1 || res2 || res3 || res4 		} 		return false 	}  	for i := 0; i < len(board); i++ { 		for j := 0; j < len(board[0]); j++ { 			if board[i][j] == word[0] { 				if backTracking(board, i, j, 0, ) { 					return true 				} 			} 		} 	} 	return false }