leetcode刷题笔记:井字游戏

代码转自leetcode官方题库,作者:a_good_start

class Solution {
    public String tictactoe(String[] board) {
        boolean fill = true;//判断是否填满
        boolean duijiao1 = board[0].charAt(0) == ' '?false:true;
        boolean duijiao2 = board[0].charAt(board.length - 1) == ' '?false:true;//判断对角
        boolean [] col = new boolean[board.length];//判断列
        Arrays.fill(col,true);//初始化列为true
        for(int j = 0;j < board.length;j++){
            String s = board[j];
            if(duijiao1 && s.charAt(j) != board[0].charAt(0)) duijiao1 = false;
            if(duijiao2 && s.charAt(col.length - 1 - j) != board[0].charAt(col.length - 1)) duijiao2 = false;
            boolean wid = true;
            if(s.charAt(0) == ' ') wid = false;
            for(int i = 0;i < s.length();i++){
                if(fill && s.charAt(i)==' ')  fill = false;//判断是否为满
                if(wid && s.charAt(i) != s.charAt(0)) wid = false;//判断行是否满足
                if(col[i] && s.charAt(i) != board[0].charAt(i)) col[i] = false;//判断列是否满足
            }
            if(wid) return "" + s.charAt(0);
        }
        if(duijiao1) return "" +board[0].charAt(0);
        if(duijiao2) return "" + board[0].charAt(col.length - 1);
        for(int i = 0;i < col.length;i++) if(col[i] && board[0].charAt(i) !=' ') return "" + board[0].charAt(i);
        return fill?"Draw":"Pending";
    }    



思路:fill判断是否填满,依次判断对角线,列行,上的元素是否一致,只要任意一个一致,那么即可找出答案。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值