Volver a los desafíos
Intermedio 0 resueltos 0% de aceptación

Tic-Tac-Toe Winner

Decide the result of a tic-tac-toe board.

Lo que aprenderás

  • Comprobar filas, columnas y diagonales
  • Detectar un empate o una partida sin terminar
  • Mantener legibles las comprobaciones de la cuadrícula

Problema

A 3×3 board is given as three strings of X, O and . (empty). A player wins with three of their marks in a row, column or diagonal. Boards never have two winners.

Implement tic_tac_toe_winner(board).

Input

board: Three rows of three characters each.

Output

Return "X" or "O" for the winner, "Draw" if the board is full with no winner, or "Pending" if empty cells remain and nobody has won.

Restricciones

board has exactly 3 rows of length 3

Ejemplos

Ejemplo 1
Entrada:
board = ["XOX", ".X.", "O.X"]

Salida esperada:
expected = "X"
Entrada:
std::vector<std::string> board = {"XOX", ".X.", "O.X"};

Salida esperada:
std::string expected = "X";
Entrada:
string[] board = new string[] {"XOX", ".X.", "O.X"};

Salida esperada:
string expected = "X";

Explicación

X holds the diagonal from top-left to bottom-right, so X wins.

Ejemplo 2
Entrada:
board = ["XOX", "XOO", "OXX"]

Salida esperada:
expected = "Draw"
Entrada:
std::vector<std::string> board = {"XOX", "XOO", "OXX"};

Salida esperada:
std::string expected = "Draw";
Entrada:
string[] board = new string[] {"XOX", "XOO", "OXX"};

Salida esperada:
string expected = "Draw";

Explicación

The board is full and no line has three of a kind: Draw.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Revisa todas las filas, columnas y las dos diagonales buscando tres marcas iguales y no vacías.

Pista 2

Mientras recorres el tablero una vez, registra si queda alguna casilla vacía.

Pista 3

Recuerda: un tablero lleno sin ganador es empate; si no, la partida sigue en curso.

Complejidad esperada

tiempo O(1), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.