前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LeetCode第 165 场周赛】找出井字棋的获胜者

【LeetCode第 165 场周赛】找出井字棋的获胜者

作者头像
韩旭051
发布2019-12-03 01:18:34
6100
发布2019-12-03 01:18:34
举报
文章被收录于专栏:刷题笔记

版权声明:本文为博主原创文章,遵循 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

没有赢看是不是下了九次,判断平局还是可以继续。

代码语言:javascript
复制
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";
        }
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 把下棋步骤输进去,直接判断3*3棋盘有没有赢,赢了就return
  • 没有赢看是不是下了九次,判断平局还是可以继续。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档