// 被围绕的区域package picture
// 力扣官方题解 深度优先遍历var n, m intfuncsolve(board [][]byte){iflen(board)==0||len(board[0])==0{return}
n, m =len(board),len(board[0])for i :=0; i < n; i++{dfs(board, i,0)dfs(board, i, m-1)}for i :=1; i < m-1; i++{dfs(board,0, i)dfs(board, n-1, i)}for i :=0; i < n; i++{for j :=0; j < m; j++{if board[i][j]=='A'{
board[i][j]='O'}elseif board[i][j]=='O'{
board[i][j]='X'}}}}funcdfs(board [][]byte, x, y int){if x <0|| x >= n || y <0|| y >= m || board[x][y]!='O'{return}
board[x][y]='A'dfs(board, x+1, y)dfs(board, x-1, y)dfs(board, x, y+1)dfs(board, x, y-1)}