当前位置: 首页 > news >正文

LeetCode: 3274. 检查棋盘方格颜色是否相同

在这里插入图片描述

一、题目

  给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。
  以下是棋盘的参考图。
在这里插入图片描述
  如果这两个方格颜色相同,返回 true,否则返回 false。
  坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。

二、示例
示例 1:
输入: coordinate1 = "a1", coordinate2 = "c3"
输出: true
解释:
两个方格均为黑色。
示例 2:
输入: coordinate1 = "a1", coordinate2 = "h3"
输出: false
解释:
方格 "a1" 是黑色,而 "h3" 是白色。

  提示:

  • coordinate1.length == coordinate2.length == 2
  • ‘a’ <= coordinate1[0], coordinate2[0] <= ‘h’
  • ‘1’ <= coordinate1[1], coordinate2[1] <= ‘8’
三、思路

  把 coordinate1​ 和 coordinate2​ 简记为 s 和 t。

  根据题目中的图片,如果 s[0] 和 s[1] 的 ASCII 值的奇偶性相同,那么格子是黑格,否则是白格。

  进一步地,由于 奇数 + 奇数 = 偶数,偶数 + 偶数 = 偶数,所以如果 (s[0] + s[1]) mod 2 是偶数,那么格子是黑格;否则 奇数 + 偶数 = 奇数,格子是白格。

  如果 (s[0] + s[1]) mod 2 = (t[0] + t[1]) mod 2,那么两个格子颜色相同,否则不同。

四、解法
package com.example.demo.test;public class CheckTwoChessboards {public boolean checkTwoChessboards(String coordinate1, String coordinate2) {// 查找差值int dif1 = coordinate2.charAt(0) - coordinate1.charAt(0);int dif2 = coordinate2.charAt(1) - coordinate1.charAt(1);return (dif1 & 1) == (dif2 & 1);}public static boolean checkTwoChessboards1(String coordinate1, String coordinate2) {// 查找差值int dif1 = Math.abs(coordinate2.charAt(0) - coordinate1.charAt(0));int dif2 = Math.abs(coordinate2.charAt(1) - coordinate1.charAt(1));// 奇偶性相同return (dif1 % 2) == (dif2 % 2);}public static boolean checkTwoChessboards2(String coordinate1, String coordinate2) {int dif1 = coordinate1.charAt(0) + coordinate1.charAt(1);int dif2 = coordinate2.charAt(0) + coordinate2.charAt(1);// 奇偶性相同return (dif1 % 2) == (dif2 % 2);}public static void main(String[] args) {String a = "h7";String b = "c8";System.out.println(checkTwoChessboards1(a, b));}
}
http://www.lryc.cn/news/468912.html

相关文章:

  • datax编译并测试
  • 2-133 基于matlab的粒子群算法PSO优化BP神经网络
  • 复盘秋招22场面试(四)形势重新评估与后续措施
  • 揭开C++ STL的神秘面纱之string:提升编程效率的秘密武器
  • 用人工智能,应该怎么掏钱?
  • 【Axure高保真原型】移动案例
  • Bytebase 3.0.0 - AI 助手全面升级
  • php基础:数据类型、常量、字符串
  • Discuz发布原创AI帖子内容生成:起尔 | AI原创帖子内容生成插件开发定制
  • el-table在某些条件下禁止选中
  • 深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南
  • 深度学习:元学习(Meta-Learning)详解
  • uniapp展示本地pdf + 自定义标题
  • 国标GB28181设备管理软件EasyGBS国标GB28181-2016平台更换SQLite数据库的步骤
  • C++基础与实用技巧第三节:内存管理与性能优化
  • 【移动应用开发】界面设计(二)实现水果列表页面
  • 基于Multisim的四人智力竞赛抢答器设计与仿真
  • 前端学习---(4)js基础-2
  • 重生之“我打数据结构,真的假的?”--3.栈和队列(无习题)
  • 《Python游戏编程入门》注-第2章2
  • PoissonRecon学习笔记
  • 腾讯云DBA面试(一面)
  • Python:背景知识及环境安装
  • 力扣第420周赛 中等 3324. 出现在屏幕上的字符串序列
  • ant design vue树选择器实现部分层级禁用(指定层级或依据字段判断)
  • 安灯系统助力汽车零部件工厂快速解决生产异常
  • vue父子传参的方式——Prop
  • Apache Commons Text 指南:比 String 更强大的文本处理工具
  • C++面向对象编程学习
  • 云轴科技ZStack亮相迪拜GITEX大会,与阿里云再次携手深化海外合作