# 1275. Find Winner on a Tic Tac Toe Game

Tic-tac-toe is played by two players *A* and *B* on a *3* x *3* grid.

Here are the rules of Tic-Tac-Toe:

- Players take turns placing characters into empty squares (” “).
- The first player
*A*always places “X” characters, while the second player*B*always places “O” characters. - “X” and “O” characters are always placed into empty squares, never on filled ones.
- The game ends when there are 3 of the same (non-empty) character filling any row, column, or diagonal.
- The game also ends if all squares are non-empty.
- No more moves can be played if the game is over.

Given an array `moves`

where each element is another array of size 2 corresponding to the row and column of the grid where they mark their respective character in the order in which *A* and *B* play.

Return the winner of the game if it exists (*A* or *B*), in case the game ends in a draw return “Draw”, if there are still movements to play return “Pending”.

You can assume that `moves`

is **valid** (It follows the rules of Tic-Tac-Toe), the grid is initially empty and *A* will play **first**.

**Example 1:**

**Input:**

moves = [[0,0],[2,0],[1,1],[2,1],[2,2]]

**Output:**

"A"

**Explanation:**

"A" wins, he always plays first. "X " "X " "X " "X " "

**X**

" " " -> " " -> " X " -> " X " -> "

**X**

" " " "O " "O " "OO " "OO

**X**

"

**Example 2:**

**Input:**

moves = [[0,0],[1,1],[0,1],[0,2],[1,0],[2,0]]

**Output:**

"B"

**Explanation:**

"B" wins. "X " "X " "XX " "XXO" "XXO" "XX

**O**

" " " -> " O " -> " O " -> " O " -> "XO " -> "X

**O**

" " " " " " " " " " " "

**O**

"

**Example 3:**

**Input:**

moves = [[0,0],[1,1],[2,0],[1,0],[1,2],[2,1],[0,1],[0,2],[2,2]]

**Output:**

"Draw"

**Explanation:**

The game ends in a draw since there are no moves to make. "XXO" "OOX" "XOX"

**Example 4:**

**Input:**

moves = [[0,0],[1,1]]

**Output:**

"Pending"

**Explanation:**

The game has not finished yet. "X " " O " " "

**Constraints:**

`1 <= moves.length <= 9`

`moves[i].length == 2`

`0 <= moves[i][j] <= 2`

- There are no repeated elements on
`moves`

. `moves`

follow the rules of tic tac toe.

class Solution { public String tictactoe(int[][] moves) { for (int a = 0; a <= 1; a++ ){ int[] x = new int[3]; int[] y = new int[3]; int[] v = new int[2]; for (int i = a ; i < moves.length; i += 2){ x[moves[i][0]] ++; y[moves[i][1]] ++; if (moves[i][0] == moves[i][1]){ v[0] ++; } if (moves[i][0] == 2 - moves[i][1]) { v[1] ++; } } if (x[0] == 3 || x[1] == 3 ||x[2] == 3 || y [0] == 3 || y [1] == 3|| y [2] == 3 || v[0] == 3 || v[1] == 3){ return a==0? "A":"B"; } } return moves.length == 9? "Draw":"Pending"; } }

## 0 Comments