题解 | #井字棋#

井字棋

http://www.nowcoder.com/practice/0375c1d206ef48a3894f72aa07b2fdde

import java.util.Scanner;

public class Main {
    public static boolean win(char[][] arr, char c) {
        boolean flag = false;
        // 验证行
        for (int i = 0; i < arr.length; i++) {
            flag = true; // 是否满足
            for (int j = 0; j < arr[i].length; j++) {
                if (arr[i][j] != c) {
                    flag = false;
                }
            }
            if (flag) {
                return flag;
            }
        }

        // 验证列
        for (int i = 0; i < arr.length; i++) {
            flag = true; // 是否满足
            for (int j = 0; j < arr[i].length; j++) {
                if (arr[j][i] != c) {
                    flag = false;
                }
            }
            if (flag) {
                return flag;
            }
        }

        // 验证从左上角到左下角
        for (int i = 0; i < arr.length; i++) {
            flag = true; // 是否满足
            if (arr[i][i] != c) {
                flag = false;
                break;
            }
        }
        if (flag) {
            return flag;
        }

        // 验证从左下角到右上角
        for (int i = arr.length - 1; i >= 0 ; i--) {
            flag = true; // 是否满足
            if (arr[i][2 - i] != c) {
                flag = false;
                break;
            }
        }
        if (flag) {
            return flag;
        }
        return false;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = 3;
        char[][] arr = new char[n][n];

        for (int i = 0; i < n; i++) {
            String s = sc.nextLine();
            String[] tmp = s.split(" ");
            for (int j = 0; j < n; j++) {
                arr[i][j] = tmp[j].charAt(0);
            }
        }
        boolean k = win(arr, 'K');
        boolean b = win(arr, 'B');
        if (k) {
            System.out.println("KiKi wins!");
        } else if (b) {
            System.out.println("BoBo wins!");
        } else {
            System.out.println("No winner!");
        }
    }
}
全部评论

相关推荐

xdm怎么说&nbsp;要被拷打了&nbsp;担心是KPI
丹田:面就完了,就当日薪四位数的大佬免费给给你面试。
点赞 评论 收藏
分享
湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务