1
var validTicTacToe = function (board) {
2
let playerX = 0,
3
playerO = 0;
4
let horizontal = [0, 0, 0];
5
let vertical = [0, 0, 0];
6
let diagnol = [0, 0];
7

8
const transformConfig = (row, col, val) => {
9
horizontal[row] += val;
10
vertical[col] += val;
11
if (row === col) {
12
diagnol[0] += val;
13
if (row + col == board.length - 1) {
14
diagnol[1] += val;
15
}
16
} else if (row + col == board.length - 1) {
17
diagnol[1] += val;
18
}
19
};
20

21
board.forEach((data, row) => {
22
data.split("").forEach((turn, col) => {
23
if (turn == "X") {
24
playerX++;
25
transformConfig(row, col, 1);
26
} else if (turn == "O") {
27
playerO++;
28
transformConfig(row, col, -1);
29
}
30
});
31
});
32
if (playerX < playerO || playerX - playerO > 1) return false;
33
if (horizontal.includes(3) && playerX <= playerO) return false;
34
if (vertical.includes(3) && playerX <= playerO) return false;
35
if (diagnol.includes(3) && playerX <= playerO) return false;
36
if (horizontal.includes(-3) && playerX > playerO) return false;
37
if (vertical.includes(-3) && playerX > playerO) return false;
38
if (diagnol.includes(-3) && playerX > playerO) return false;
39

40
return true;
41
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0