class
solution
(object):
defvalidtictactoe
(self, board)
:"""
:type board: list[str]
:rtype: bool
"""first,second=
'xo'
xnum=
sum(row.count(first)
for row in board)
onum=
sum(row.count(second)
for row in board)
# 檢查在棋盤的 3 行,3 列和 2 條對角線上是否有該玩家的連續 3 枚棋子。
defwin
(board,player)
:for i in
xrange(3
):ifall
(board[i]
[j]==player for j in
xrange(3
)):return
true
ifall
(board[j]
[i]==player for j in
xrange(3
)):return
true
# 兩條對角線
return
(player==board[1]
[1]==board[0]
[0]==board[2]
[2]or player==board[1]
[1]==board[0]
[2]==board[2]
[0])
# x的數量一定大於等於o,且相差最大為1
if onum notin:
return
false
# 贏家是x,必須保證最後乙個棋子是x下的
if win(board,first)
and xnum-
1!= onum:
return
false
# 贏家是o,必須保證最後乙個棋子是o下的
if win(board,second)
and xnum != onum:
return
false
return
true
有效的井字遊戲
問題描述 用字串陣列作為井字遊戲的遊戲板 board。當且僅當在井字遊戲過程中,玩家有可能將字元放置成遊戲板所顯示的狀態時,才返回 true。該遊戲板是乙個 3 x 3 陣列,由字元 x 和 o 組成。字元 代表乙個空位。以下是井字遊戲的規則 玩輪流將字元放入空位 中。第乙個玩家總是放字元 x 且第...
leetcode 井字遊戲
設計乙個演算法,判斷玩家是否贏了井字遊戲。輸入是乙個 n x n 的陣列棋盤,由字元 x 和 o 組成,其中字元 代表乙個空位。以下是井字遊戲的規則 玩家輪流將字元放入空位 中。第乙個玩家總是放字元 o 且第二個玩家總是放字元 x x 和 o 只允許放置在空位中,不允許對已放有字元的位置進行填充。當...
31 有效的井字遊戲
用字串陣列作為井字遊戲的遊戲板 board。當且僅當在井字遊戲過程中,玩家有可能將字元放置成遊戲板所顯示的狀態時,才返回 true。該遊戲板是乙個 3 x 3 陣列,由字元 x 和 o 組成。字元 代表乙個空位。以下是井字遊戲的規則 玩家輪流將字元放入空位 中。第乙個玩家總是放字元 x 且第二個玩家...