From ea6b0438e79a643a2ccf63128a000a7d2cdfde45 Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Sun, 7 Dec 2025 18:05:20 +0800 Subject: [PATCH] Add solution and test-cases for problem 794 --- .../0794.Valid-Tic-Tac-Toe-State/1.jpg | Bin 0 -> 5313 bytes .../0794.Valid-Tic-Tac-Toe-State/2.jpg | Bin 0 -> 7610 bytes .../0794.Valid-Tic-Tac-Toe-State/3.jpg | Bin 0 -> 10746 bytes .../0794.Valid-Tic-Tac-Toe-State/README.md | 46 +++++++++---- .../0794.Valid-Tic-Tac-Toe-State/Solution.go | 65 +++++++++++++++++- .../Solution_test.go | 12 ++-- 6 files changed, 102 insertions(+), 21 deletions(-) create mode 100644 leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/1.jpg create mode 100644 leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/2.jpg create mode 100644 leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/3.jpg diff --git a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/1.jpg b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..abe12ce81dfd896e160b1fdc74dc7ed44be2e7c5 GIT binary patch literal 5313 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 S@`807Qfr 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 V|Je9NZMr2_XhTz#VddfEe*n)=+Ft+w literal 0 HcmV?d00001 diff --git a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/3.jpg b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f166c34c0ad1de7d1af6dd0738de96ca1d0c47a3 GIT binary patch literal 10746 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 WE9~qJal-p_@0FCoR8wAlANvpKEEul< literal 0 HcmV?d00001 diff --git a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/README.md b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/README.md index eb117afb6..b7673940c 100644 --- a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/README.md +++ b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/README.md @@ -1,28 +1,48 @@ # [794.Valid Tic-Tac-Toe State][title] -> [!WARNING|style:flat] -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) - ## Description -**Example 1:** +Given a Tic-Tac-Toe `board` as a string array board, return `true` if and only if it is possible to reach this board position during the course of a valid tic-tac-toe game. + +The board is a `3 x 3` array that consists of characters `' '`, `'X'`, and `'O'`. The `' '` character represents an empty square. + +Here are the rules of Tic-Tac-Toe: + +- Players take turns placing characters into empty squares `' '`. +- The first player always places `'X'` characters, while the second player always places `'O'` characters. +- `'X'` and `'O'` characters are always placed into empty squares, never filled ones. +- The game ends when there are three of the same (non-empty) character filling any row, column, or diagonal. +- The game also ends if all squares are non-empty. +- No more moves can be played if the game is over. + +**Example 1:** + +![1](./1.jpg) ``` -Input: a = "11", b = "1" -Output: "100" +Input: board = ["O "," "," "] +Output: false +Explanation: The first player always plays "X". ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.jpg) -### 思路1 -> ... -Valid Tic-Tac-Toe State -```go ``` +Input: board = ["XOX"," X "," "] +Output: false +Explanation: Players take turns making moves. +``` + +**Example 3:** + +![3](./3.jpg) +``` +Input: board = ["XOX","O O","XOX"] +Output: true +``` ## 结语 diff --git a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution.go b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution.go index d115ccf5e..8bc07fedd 100644 --- a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution.go +++ b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution.go @@ -1,5 +1,66 @@ package Solution -func Solution(x bool) bool { - return x +func win794(board []string) (bool, bool) { + x, o := false, false + for i := range 3 { + if board[i][0] == board[i][1] && board[i][1] == board[i][2] { + if board[i][0] == 'X' { + x = true + } + if board[i][0] == 'O' { + o = true + } + } + + if board[0][i] == board[1][i] && board[1][i] == board[2][i] { + if board[0][i] == 'X' { + x = true + } + if board[0][i] == 'O' { + o = true + } + } + } + if board[0][0] == board[1][1] && board[1][1] == board[2][2] { + if board[0][0] == 'X' { + x = true + } + if board[0][0] == 'O' { + o = true + } + } + if board[0][2] == board[1][1] && board[1][1] == board[2][0] { + if board[0][2] == 'X' { + x = true + } + if board[0][2] == 'O' { + o = true + } + } + return x, o +} + +func Solution(board []string) bool { + xWin, oWin := win794(board) + if xWin && oWin { + return false + } + x, o := 0, 0 + for i := range 3 { + for j := range 3 { + if board[i][j] == 'X' { + x++ + } + if board[i][j] == 'O' { + o++ + } + } + } + if !xWin && !oWin { + return x == o || x == o+1 + } + if xWin { + return x == o+1 + } + return x == o } diff --git a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution_test.go b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution_test.go index 14ff50eb4..63a0e9579 100644 --- a/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution_test.go +++ b/leetcode/701-800/0794.Valid-Tic-Tac-Toe-State/Solution_test.go @@ -10,12 +10,12 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool + inputs []string expect bool }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", []string{"O ", " ", " "}, false}, + {"TestCase2", []string{"XOX", " X ", " "}, false}, + {"TestCase3", []string{"XOX", "O O", "XOX"}, true}, } // 开始测试 @@ -30,10 +30,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }