Valide o estado do jogo da velha

A função recebe um array de três strings que representam um tabuleiro. Os caracteres podem ser "X", "O", " ". O primeiro jogador escreve "X" no primeiro turno. Se um jogador tiver três marcas em uma linha, coluna ou diagonal, o jogo para. Dado o tabuleiro, avalie se esse estado pode ser alcançado de acordo com as regras e retorne true ou false.

Exemplos

ValidateTicTacToe(string[] { "X  ", "   ", "   " }) ➞ true
// X goes first.

ValidateTicTacToe(string[] { "O  ", "   ", "   " }) ➞ false
// O cannot go first.

ValidateTicTacToe(string[] { "X X", " O ", "   " }) ➞ true
// Two X and one O is a possible state.

ValidateTicTacToe(string[] { "XOX", " X ", "   " }) ➞ false
// Three X and one O is not a possible state.
// Players have to go one after another.

Notas

N/A