【LeetCode第 165 场周赛】找出井字棋的获胜者
- 2019 年 12 月 3 日
- 笔记
版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shiliang97/article/details/103334057
5275. Find Winner on a Tic Tac Toe Game
Tic-tac-toe is played by two players A and B on a 3 x 3 grid.
Here are the rules of Tic-Tac-Toe:
Players take turns placing characters into empty squares (" "). The first player A always places "X" characters, while the second player B always places "O" characters. "X" and "O" characters are always placed into empty squares, never on 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. Given an array moves where each element is another array of size 2 corresponding to the row and column of the grid where they mark their respective character in the order in which A and B play.
Return the winner of the game if it exists (A or B), in case the game ends in a draw return "Draw", if there are still movements to play return "Pending".
You can assume that moves is valid (It follows the rules of Tic-Tac-Toe), the grid is initially empty and A will play first.
Example 1:
Input: moves = [[0,0],[2,0],[1,1],[2,1],[2,2]] Output: "A" Explanation: "A" wins, he always plays first. "X " "X " "X " "X " "X " " " -> " " -> " X " -> " X " -> " X " " " "O " "O " "OO " "OOX" Example 2:
Input: moves = [[0,0],[1,1],[0,1],[0,2],[1,0],[2,0]] Output: "B" Explanation: "B" wins. "X " "X " "XX " "XXO" "XXO" "XXO" " " -> " O " -> " O " -> " O " -> "XO " -> "XO " " " " " " " " " " " "O " Example 3:
Input: moves = [[0,0],[1,1],[2,0],[1,0],[1,2],[2,1],[0,1],[0,2],[2,2]] Output: "Draw" Explanation: The game ends in a draw since there are no moves to make. "XXO" "OOX" "XOX" Example 4:
Input: moves = [[0,0],[1,1]] Output: "Pending" Explanation: The game has not finished yet. "X " " O " " "
Constraints:
1 <= moves.length <= 9 moves[i].length == 2 0 <= moves[i][j] <= 2 There are no repeated elements on moves. moves follow the rules of tic tac toe.
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-winner-on-a-tic-tac-toe-game 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
把下棋步骤输进去,直接判断3*3棋盘有没有赢,赢了就return
没有赢看是不是下了九次,判断平局还是可以继续。
class Solution { public: string tictactoe(vector<vector<int>>& moves) { vector<vector<int>>vv; for(int i=0;i<3;i++){ vector<int>v(3); vv.push_back(v); } int flag=0; for(int i=0;i<moves.size();i++){ int a=moves[i][0]; int b=moves[i][1]; if(i%2==0){ flag=1; }else{ flag=-1; } vv[a][b]=flag; if((vv[a][0]==flag&&vv[a][1]==flag&&vv[a][2]==flag)||(vv[0][b]==flag&&vv[1][b]==flag&&vv[2][b]==flag)||(vv[0][0]==flag&&vv[1][1]==flag&&vv[2][2]==flag)||(vv[0][2]==flag&&vv[1][1]==flag&&vv[2][0]==flag)){ if(flag==1){ return "A"; }else{ return "B"; } } } if(moves.size()<9){ return "Pending"; }else{ return "Draw"; } } };