20. Design

348. Design Tic-Tac-Toe

累計三個就能贏

  1. rows[]

  2. cols[]

  3. diagnal

  4. antiDiagnal

class TicTacToe:
    def __init__(self, n: int):
        self.rows = [0] * n
        self.cols = [0] * n
        self.diag = 0
        self.antiDiag = 0
        
    def move(self, row: int, col: int, player: int) -> int:
        n = len(self.rows)
        toAdd = 1 if player == 1 else -1
        self.rows[row] += toAdd
        self.cols[col] += toAdd
        if row == col:
            self.diag += toAdd
        if row == n - col - 1:
            self.antiDiag += toAdd
        
        if abs(self.rows[row]) == n or abs(self.cols[col]) == n \
            or abs(self.diag) == n or abs(self.antiDiag) == n:
                return player  
        return 0

Last updated