Python - super easy solution - though process explained
Thought process:\n Two players can\'t win at the same time\n X starts first, so its count must be greater by 1, or equal to the count of O.\n I generate a list 
Thought process:\n* Two players can\'t win at the same time\n* X starts first, so its count must be greater by 1, or equal to the count of O.\n* I generate a list of all different valid position for winning (rows, col and diagonals).\n   Then I check which of the players have won.\n*  X_won? O_won must be false and the diff between counts must be 1.\n*  O_won? diff must be 0\n* else, neither have won, count must be 0 or 1\n```\nclass Solution:\n    def validTicTacToe(self, board: List[str]) -> bool:        \n        main_diag = board[0][0] + board[1][1] + board[2][2]\n        second_diag = board[0][2] + board[1][1] + board[2][0]\n        \n        t_board = [\'\'.join(s) for s in zip(*board)]\n        items = [*board, *t_board, main_diag, second_diag]\n        \n        X_won = \'XXX\' in items\n        O_won = \'OOO\' in items\n        \n        X_count = sum(row.count(\'X\') for row in board)\n        O_count = sum(row.count(\'O\') for row in board)\n        diff = X_count - O_count\n        \n        if X_won:\n            return not O_won and diff == 1\n        elif O_won:\n            return diff == 0\n        else:\n            return 0 <= diff <= 1\n```
['Python']