mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-07 09:54:57 +08:00
add: leetcode 0794 solution
This commit is contained in:
@ -0,0 +1,40 @@
|
|||||||
|
package leetcode
|
||||||
|
|
||||||
|
func validTicTacToe(board []string) bool {
|
||||||
|
cntX, cntO := 0, 0
|
||||||
|
for i := range board {
|
||||||
|
for j := range board[i] {
|
||||||
|
if board[i][j] == 'X' {
|
||||||
|
cntX++
|
||||||
|
} else if board[i][j] == 'O' {
|
||||||
|
cntO++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if cntX < cntO || cntX > cntO+1 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if cntX == cntO {
|
||||||
|
return process(board, 'X')
|
||||||
|
}
|
||||||
|
return process(board, 'O')
|
||||||
|
}
|
||||||
|
|
||||||
|
func process(board []string, c byte) bool {
|
||||||
|
//某一行是"ccc"
|
||||||
|
if board[0] == string([]byte{c, c, c}) || board[1] == string([]byte{c, c, c}) || board[2] == string([]byte{c, c, c}) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
//某一列是"ccc"
|
||||||
|
if (board[0][0] == c && board[1][0] == c && board[2][0] == c) ||
|
||||||
|
(board[0][1] == c && board[1][1] == c && board[2][1] == c) ||
|
||||||
|
(board[0][2] == c && board[1][2] == c && board[2][2] == c) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
//某一对角线是"ccc"
|
||||||
|
if (board[0][0] == c && board[1][1] == c && board[2][2] == c) ||
|
||||||
|
(board[0][2] == c && board[1][1] == c && board[2][0] == c) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
Reference in New Issue
Block a user