文章目录

  • 题目要求 和 大意
  • 代码
    • 正常代码风格
    • 简约风格(就是能省的符号,就省。能成一行的代码就写成一行)
  • 正常风格代码的 讲解

题目要求 和 大意


代码

正常代码风格

class Solution {public boolean validTicTacToe(String[] board) {int x = 0,o = 0;// o 和 x 的棋子数boolean playerx=false,playero=false;// 玩家x 和 玩家o// 棋子数量for(String s:board){for(int i =0;i<3;i++){char ch = s.charAt(i);if(ch == 'X'){x++;}else if(ch == 'O'){o++;}}}if(o==1 && x==0){return false;}if(x-1>o || o>x){return false;}// 斜线if(board[0].charAt(0) == board[1].charAt(1) && board[1].charAt(1) == board[2].charAt(2)){if(board[0].charAt(0) == 'X'){playerx = true;}else if(board[0].charAt(0) == 'O'){playero = true;}}if(board[0].charAt(2) == board[1].charAt(1) && board[1].charAt(1) == board[2].charAt(0)){if(board[0].charAt(2) == 'X'){playerx = true;}else if(board[0].charAt(2) == 'O'){playero = true;}}// 横着for(String s: board){boolean flag = true;char c1 = s.charAt(0);for(int i=1;i<3;i++){char c2 = s.charAt(i);if(c1!=c2){flag=false;break;}}if(c1 == 'X'&& flag){playerx = true;}else if(c1 == 'O'&& flag){playero = true;}}// 竖着for(int i =0;i<3;i++){boolean flag = true;char c1 = board[0].charAt(i);for(int j = 1; j < 3;j++){String s = board[j];if(s.charAt(i) != c1){flag = false;break;}}if( c1 == 'X'&& flag){playerx =true;}else if(c1 == 'O'&&flag){playero = true;}}// 判断 玩家是否这很的胜利if(playerx){if(x<=o){// playerx 先下,如果胜出,棋子数量比 player0 多return false;}}if(playero){if(x!=o){// player0 后下,如果胜出,棋子数量跟 playerx 一样多return false;}}return (playero && playerx)?false:true;}}


简约风格(就是能省的符号,就省。能成一行的代码就写成一行)

class Solution {public boolean validTicTacToe(String[] board) {int x = 0,o = 0;// o 和 x 的棋子数boolean playerx=false,playero=false;// 玩家x 和 玩家o// 棋子数量for(String s:board){for(int i =0;i<3;i++){char ch = s.charAt(i);if(ch == 'X') x++;else if(ch == 'O') o++;}}if(o==1 && x==0)return false;if(x-1>o || o>x)return false;// 斜线if(board[0].charAt(0) == board[1].charAt(1) && board[1].charAt(1) == board[2].charAt(2)){if(board[0].charAt(0) == 'X')playerx = true;else if(board[0].charAt(0) == 'O')playero = true;}if(board[0].charAt(2) == board[1].charAt(1) && board[1].charAt(1) == board[2].charAt(0)){if(board[0].charAt(2) == 'X')playerx = true;else if(board[0].charAt(2) == 'O')playero = true;}// 横着for(String s: board){boolean flag = true;char c1 = s.charAt(0);for(int i=1;i<3;i++){char c2 = s.charAt(i);if(c1!=c2){flag=false;break;}}if(c1 == 'X'&& flag)playerx = true;else if(c1 == 'O'&& flag)playero = true;}// 竖着for(int i =0;i<3;i++){boolean flag = true;char c1 = board[0].charAt(i);for(int j = 1; j < 3;j++){String s = board[j];if(s.charAt(i) != c1){flag = false;break;}}if( c1 == 'X'&& flag)playerx =true;else if(c1 == 'O'&&flag)playero = true;}// 判断 玩家是否这很的胜利if(playerx)if(x<=o)return false;// playerx 先下,如果胜出,棋子数量比 player0 多if(playero)if(x!=o)return false;// player0 后下,如果胜出,棋子数量跟 playerx 一样多return (playero && playerx)?false:true;}
}


正常风格代码的 讲解

LeetCode - 794 - 有效的井字游戏 - java相关推荐

  1. leetcode470 Java_Java实现 LeetCode 794 有效的井字游戏 (暴力分析)

    794. 有效的井字游戏 用字符串数组作为井字游戏的游戏板 board.当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true. 该游戏板是一个 3 x 3 数组,由字 ...

  2. LeetCode 794. 有效的井字游戏(分类讨论)

    文章目录 1. 题目 2. 解题 1. 题目 用字符串数组作为井字游戏的游戏板 board.当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true. 该游戏板是一个 3 ...

  3. LeetCode题库整理【Java】—— 3 无重复字符的最长子串

    LeetCode题库整理[Java] ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" ...

  4. LeetCode题库整理【Java】—— 2 两数相加

    LeetCode题库整理[Java] 2.两数相加 题目:给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果, ...

  5. LeetCode题库整理【Java】—— 7整数反转

    LeetCode题库整理[Java] 7.整数反转 题目:给出一个32位的有符号整数,你需要将这个这个整数中每位上的数字进行反转. 示例1: 输入: 123 输出: 321 示例2: 输入: -123 ...

  6. LeetCode题库整理【Java】—— 1两数之和

    LeetCode题库整理[Java] 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nu ...

  7. leetcode -874 - 模拟行走机器人 - java版

    文章目录 题目 代码 题目 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方.该机器人可以接收以下三种类型的命令: -2:向左转 90 度 -1:向右转 90 度 1 < ...

  8. 井字游戏java代码_井字游戏(java)

    井字游戏(java) 井字游戏(java) 分析:游戏方式只有赢和平两种方式 赢:有一方有3个连成一条线就赢了(横,竖,对角线).想要赢填子的数量必须大于等于5,所以填前面4个格子时不需要判断. 考虑 ...

  9. leetcode 794. Valid Tic-Tac-Toe State | 794. 有效的井字游戏(Java)

    题目 https://leetcode.com/problems/valid-tic-tac-toe-state/ 题解 1.X必须比O多1个或者相同,否则false 2.X和O不能同时都是赢家,否则 ...

最新文章

  1. Windows10下SSH远程拷贝文件
  2. 敏捷开发一千零一问系列之四:优先级排错怎么办?
  3. webstrom常用键
  4. Hadoop集群高可用及zookeeper+kafka组件搭建
  5. Java11正式发布了,我们该怎么办?
  6. hive能替代oracle_173-Hive
  7. SAP web 开发 (第二篇 bsp 开发 mvc模式 Part2 )
  8. 绕过宝塔禁止的php函数,宝塔disable functions函数全被禁命令执行+加域服务器如何无限制执行命令...
  9. python rsa库_Python中rsa模块【sign 加签验签】的使用
  10. RTF文件格式【转】
  11. StringJoiner 拯救那些性能低下的字符串拼装代码(转)
  12. 2.9.PHP7.1 狐教程-【控制语句 循环】
  13. dbeaver一款全能的数据库连接工具dbeaver
  14. oracle mysql认证考试流程_oraclemysql认证的考试流程有些什么
  15. 屏幕取词翻译软件:Lingoes 灵格斯词霸
  16. 万字长文讲述我是怎样保送清华的 | 寒门学子奋斗史(四)
  17. 对计算机的认识和未来规划,计算机导论论文-论对软件专业的认识和对未来四年的规划...
  18. MP4提取音频文件,并且转换为16KHz采样率 16 bit
  19. 31岁才转行程序员,目前34了,我来说说我的经历和一些感受吧...
  20. 辉芒微IO单片机FT60F021-RB

热门文章

  1. HeadFir st 设计模式学习笔记21-- 解释者(Inter pr eter)模式拾零
  2. vlc在C#的使用方法
  3. 淘宝开放平台Api的小试牛刀(获取淘宝客推广商品信息)
  4. urban airship实现消息内容的推送
  5. python装饰器与闭包_python中闭包和装饰器的理解(关于python中闭包和装饰器解释最好的文章)。...
  6. Python爬虫,某创意网站灵感视频采集下载
  7. 产业集群理论及其生态学特性
  8. Mac怎么安装CAD(AutoCAD)安装教程,M系列芯片安装CAD正版 CAD教程
  9. Centos 7 开机一直转圈 错误 failed to load SELinux policy freezing
  10. buddypress主题_WordPress Gone Social-BuddyPress