1275. Find Winner on a Tic Tac Toe Game

时间:2019-12-03 15:43:42   收藏:0   阅读:137

Tic-tac-toe is played by two players A and B on a 3 x 3 grid.

Here are the rules of Tic-Tac-Toe:

Given an array moves where each element is another array of size 2 corresponding to the row and column of the grid where they mark their respective character in the order in which A and B play.

Return the winner of the game if it exists (A or B), in case the game ends in a draw return "Draw", if there are still movements to play return "Pending".

You can assume that moves is valid (It follows the rules of Tic-Tac-Toe), the grid is initially empty and A will play first.

class Solution {
    public String tictactoe(int[][] moves) {
        int[] arow = new int[3], brow = new int[3], acol = new int[3], bcol = new int[3];
        int aD1 = 0, bD1 = 0, aD2 = 0, bD2 = 0;
        for(int i = 0; i < moves.length; i++){
            int r = moves[i][0], c = moves[i][1];
            if(i % 2 == 0){
                if(++arow[r] == 3 || ++acol[c] == 3 || r==c && ++aD1 == 3 || r + c == 2 && ++aD2 == 3) return "A";
            }
            else if(++brow[r] == 3 || ++bcol[c] == 3 || r==c && ++bD1 == 3 || r + c == 2 && ++bD2 == 3) return "B";
        }
        return moves.length == 9 ? "Draw" : "Pending";
    }
}

 

原文:https://www.cnblogs.com/wentiliangkaihua/p/11976909.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!