天天看点

leetcode1275. 找出井字棋的获胜者

题目描述:

leetcode1275. 找出井字棋的获胜者
leetcode1275. 找出井字棋的获胜者
leetcode1275. 找出井字棋的获胜者

题解:

<1>初始化一个3*3的数组,初始化为0

<2>根据输入的moves,更新数组

<3>判断数组最终状态下是否达到A或B获胜的条件,如果没有胜出,则判断棋盘是否还有空位

def tictactoe(self, moves):
    board  = [[0 for i in range(3)]for i in range(3)]
    for i in range(len(moves)):
        if i%2==0:
            board[moves[i][0]][moves[i][1]] = "x"
        else:
            board[moves[i][0]][moves[i][1]] = "o"
    print(board)
    flag1 = 0
    flag2 = 0
    empty = 0
    for i in range(3):
        for j in range(3):
            if board[i][j]==0:
                empty = empty+1

    if board[0][0]=="x" and board[1][1]=="x" and board[2][2]=="x":
        flag1 = 1
    if board[0][0]=="o" and board[1][1]=="o" and board[2][2]=="o":
        flag2 = 1
    if board[0][2]=="x" and board[1][1]=="x" and board[2][0]=="x":
        flag1 = 1
    if board[0][2]=="o" and board[1][1]=="o" and board[2][0]=="o":
        flag2 = 1
    if board[0][0]==board[0][1]==board[0][2]=="x":
        flag1 = 1
    if board[0][0]==board[0][1]==board[0][2]=="o":
        flag2 = 1
    if board[1][0]==board[1][1]==board[1][2]=="x":
        flag1 = 1
    if board[1][0]==board[1][1]==board[1][2]=="o":
        flag2 = 1
    if board[2][0]==board[2][1]==board[2][2]=="x":
        flag1 = 1
    if board[2][0]==board[2][1]==board[2][2]=="o":
        flag2 = 1
    if board[0][0] == board[1][0] == board[2][0] == "x":
        flag1 = 1
    if board[0][0] == board[1][0] == board[2][0] == "o":
        flag2=1
    if board[0][1] == board[1][1] == board[2][1] == "x":
        flag1 = 1
    if board[0][1] == board[1][1] == board[2][1] == "o":
        flag2=1
    if board[0][2] == board[1][2] == board[2][2] == "x":
        flag1 = 1
    if board[0][2] == board[1][2] == board[2][2] == "o":
        flag2=1
    if flag1==1:
        return "A"
    if flag2==1:
        return "B"
    if flag1 == 0 and flag2==0:
        if empty==0:
            return "Draw"
        else:
            return "Pending"
      
leetcode1275. 找出井字棋的获胜者

参考https://blog.csdn.net/qq_17550379/article/details/103345013

判断部分可以利用board[i][0]和board[0][i]简化