【力扣·每日一题】794.有效的井字游戏(模拟)

简介: 【力扣·每日一题】794.有效的井字游戏(模拟)

题意

20200401134307494.png

思路:

判断步数是否合法,x和o数量意义或o比x多一。

再判断两种合法的步数是否为对应的一方赢。

判断是否赢就是遍历每行每列和对角线是否是三个一样的,

代码:

class Solution {
public:
    bool validTicTacToe(vector<string>& board) {
        int x=0,o=0;
        for(string s:board){
            for(char t:s){
                if(t=='X') x++;
                else if(t=='O') o++;
            }
        }
        if(x!=o){
            if(o!=x-1) return false;
        }
        if(o!=x-1&&check(board,'X')) return false;
        if(o!=x&&check(board,'O')) return false;
        return true;
    }
    bool check(vector<string>& b, char t) {
        if(t==b[0][0]&&b[0][0]==b[1][1]&&b[1][1]==b[2][2]) return true;
        if(t==b[0][2]&&b[0][2]==b[1][1]&&b[1][1]==b[2][0]) return true;
        for(int i=0;i<=2;i++){
            if(t==b[i][0]&&b[i][0]==b[i][1]&&b[i][1]==b[i][2]) return true;
            if(t==b[0][i]&&b[0][i]==b[1][i]&&b[1][i]==b[2][i]) return true;
        }
        return false;
    }
};


目录
相关文章
|
1月前
LeetCode题:174. 地下城游戏
LeetCode题:174. 地下城游戏
45 0
LeetCode题:174. 地下城游戏
|
1月前
|
Go
golang力扣leetcode 1823.找出游戏的获胜者
golang力扣leetcode 1823.找出游戏的获胜者
28 0
|
13天前
力扣-2029-石子游戏-‘屎山’代码
力扣-2029-石子游戏-‘屎山’代码
16 3
|
15天前
|
算法 数据挖掘 开发者
LeetCode题目55:跳跃游戏【python5种算法贪心/回溯/动态规划/优化贪心/索引哈希映射 详解】
LeetCode题目55:跳跃游戏【python5种算法贪心/回溯/动态规划/优化贪心/索引哈希映射 详解】
|
11天前
|
算法
【经典LeetCode算法题目专栏分类】【第9期】深度优先搜索DFS与并查集:括号生成、岛屿问题、扫雷游戏
【经典LeetCode算法题目专栏分类】【第9期】深度优先搜索DFS与并查集:括号生成、岛屿问题、扫雷游戏
|
11天前
|
算法 机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
|
15天前
|
存储 算法 数据挖掘
力扣174题动态规划:地下城游戏(含模拟面试)
力扣174题动态规划:地下城游戏(含模拟面试)
|
15天前
|
SQL 算法 数据可视化
python 贪心算法 动态规划实现 跳跃游戏ll【力扣题45】
python 贪心算法 动态规划实现 跳跃游戏ll【力扣题45】
|
1月前
|
算法 测试技术 索引
【力扣】45.跳跃游戏Ⅱ
【力扣】45.跳跃游戏Ⅱ
|
1月前
|
算法
【力扣】55.跳跃游戏
【力扣】55.跳跃游戏