1275. 找出井字棋的获胜者

68 阅读1分钟

题目:
leetcode.cn/problems/fi…
算法:
方法一:模拟
数字范围也不大,模拟就好了

func tictactoe(moves [][]int) string {
    grid := make([][]byte, 3)
    for i := range grid {
        grid[i] = make([]byte, 3)
    }
    for i := range moves {
        x, y :=  moves[i][0], moves[i][1]
        grid[x][y] = byte('A' + i % 2)
        if grid[x][0] == grid[x][1] && grid[x][1] == grid[x][2] {
            return string(grid[x][y])
        }
        if grid[0][y] == grid[1][y] && grid[1][y] == grid[2][y] {
            return string(grid[x][y])
        }
        if grid[0][0] != 0 && grid[0][0] == grid[1][1] && grid[1][1] == grid[2][2] {
            return string(grid[x][y])
        }
        if grid[0][2] != 0 && grid[0][2] == grid[1][1] && grid[1][1] == grid[2][0] {
            return string(grid[x][y])
        }
        
    }
    if len(moves) != 9 {
        return "Pending"
    }
    return "Draw"
}