版权声明:本文为博主原创文章,转载请注明出处:http://blog.jerkybible.com/2018/03/09/LeetCode-794-Valid-Tic-Tac-Toe-State/
题目要求
A Tic-Tac-Toe board is given 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, and 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 3 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:
Input: board = [“O “, “ “, “ “]
Output: false
Explanation: The first player always plays “X”.Example 2:
Input: board = [“XOX”, “ X “, “ “]
Output: false
Explanation: Players take turns making moves.Example 3:
Input: board = [“XXX”, “ “, “OOO”]
Output: falseExample 4:
Input: board = [“XOX”, “O O”, “XOX”]
Output: true
Note:
board
is a length-3 array of strings, where each stringboard[i]
has length 3.- Each
board[i][j]
is a character in the set{" ", "X", "O"}
.
题意解析
这里的Tic-Tac-Toe游戏就是小时候的井字格游戏,这里不再详细解释这个游戏了。这道题的目的是求出当前游戏是否处于非法状态。
解法分析
Tic-Tac-Toe游戏的非法状态吧:
- X的数目减去O的数目大于1;
- O的数目减去X的数目大于0;
- 存在X和O同时胜利的情况;
- X胜利时,O的数目大于等于X的数目;
- 0胜利时,X的数目大于O的数目。
解题代码
|
|