mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-06 17:44:10 +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