当前位置: 首页 > 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));}
}

相关文章:

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

一、题目 给你两个字符串 coordinate1 和 coordinate2&#xff0c;代表 8 x 8 国际象棋棋盘上的两个方格的坐标。   以下是棋盘的参考图。   如果这两个方格颜色相同&#xff0c;返回 true&#xff0c;否则返回 false。   坐标总是表示有效的棋盘方格。坐标的格式总是先…...

datax编译并测试

mvn -U clean package assembly:assembly -Dmaven.test.skiptrue 参看&#xff1a;DataX导数的坑_datax插件初始化错误, 该问题通常是由于datax安装错误引起,请联系您的运维解决-CSDN博客 两边表结构先创建好&#xff1a; (base) [rootlnpg bin]# pwd /db/DataX-datax_v20230…...

2-133 基于matlab的粒子群算法PSO优化BP神经网络

基于matlab的粒子群算法PSO优化BP神经网络&#xff0c;BP神经网络算法采用梯度下降算法&#xff0c;以输出误差平方最小为目标&#xff0c;采用误差反向传播&#xff0c;训练网络节点权值和偏置值&#xff0c;得到训练模型。BP神经网络的结构(层数、每层节点个数)较复杂时&…...

复盘秋招22场面试(四)形势重新评估与后续措施

连续好多天睡不着觉&#xff0c;经常晚上起来好几次&#xff0c;到现在还是没offer。之前有个校友在抖音留言说我能收到这么多面试说明简历没问题&#xff0c;这么多一面挂&#xff0c;说明我技术面有问题。确实有一些是kpi面&#xff0c;但是我复盘之后我发现也没有那么多kpi面…...

揭开C++ STL的神秘面纱之string:提升编程效率的秘密武器

目录 &#x1f680;0.前言 &#x1f688;1.string 构造函数 &#x1f69d;1.1string构造函数 &#x1f69d;1.2string拷贝构造函数 &#x1f688;2.string类的使用 &#x1f69d;2.1.查询元素个数或空间 返回字符串中有效字符的个数&#xff1a;size lenth 返回字符串目…...

用人工智能,应该怎么掏钱?

人工智能&#xff08;AI&#xff09;服务的发展正快速改变企业和开发者的工作方式&#xff0c;不仅提供了强大的数据分析和预测能力&#xff0c;还涵盖了从自然语言处理到图像识别的广泛功能。然而&#xff0c;理解AI服务的支付模式对成本控制和合理资源分配至关重要&#xff0…...

【Axure高保真原型】移动案例

今天和大家分享多个常用的移动案例的原型模板&#xff0c;包括轮盘滑动控制元件移动、页面按钮控制元件移动、鼠标单击控制元件移动、元件跟随鼠标移动、鼠标拖动控制元件移动、键盘方向键控制元件移动&#xff0c;具体效果可以点击下方视频观看或打开下方预览地址查看哦 【原…...

Bytebase 3.0.0 - AI 助手全面升级

&#x1f680; 新功能 SQL 编辑器里的 AI 助手&#xff1a;支持将自然语言转换成 SQL 语句&#xff0c;解释 SQL 代码&#xff0c;还能帮助发现潜在问题。 支持 SQL Server DML 语句一键回滚。支持 MariaDB 的在线大表变更。新的 SQL 审核规则&#xff1a; 要求为 MySQL 设置 …...

php基础:数据类型、常量、字符串

语法补充&#xff1a; 每句必须以&#xff1b;结尾 echo&#xff1a;能输出一个以上的字符串&#xff0c;英文逗号隔开 print&#xff1a;只能输出一个字符串并返回1 1.数据类型 php可以自动识别数据类型。 php有5种数据类型&#xff1a;String&#xff08;字符串&#xf…...

Discuz发布原创AI帖子内容生成:起尔 | AI原创帖子内容生成插件开发定制

Discuz发布原创AI帖子内容生成&#xff1a;起尔 | AI原创帖子内容生成插件开发定制 在当今互联网快速发展的时代&#xff0c;内容创作成为了网站运营、社交媒体管理和个人博客维护不可或缺的一部分。然而&#xff0c;高质量内容的创作往往耗时耗力&#xff0c;特别是对于需要频…...

el-table在某些条件下禁止选中

el-table在某些条件下禁止选中 废话不多说直接上代码 HTML部分 <el-table v-loading"loading" :data"wmsShipmentOrderList" ref"multipleTable" select"handleSelect" selection-change"handleSelectionChange">&…...

深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南

文章目录 引言GET 方法POST 方法PUT 方法DELETE 方法小结适用场景与特点总结最佳实践 在 API 设计中的重要性 引言 HTTP 协议的背景&#xff1a;介绍 HTTP&#xff08;超文本传输协议&#xff09;作为互联网的基础协议&#xff0c;自 1991 年发布以来&#xff0c;成为客户端和…...

深度学习:元学习(Meta-Learning)详解

元学习&#xff08;Meta-Learning&#xff09;详解 元学习&#xff0c;也称为“学会学习”&#xff0c;是机器学习中的一个重要子领域&#xff0c;旨在开发能够快速适应新任务或环境的模型&#xff0c;即使这些任务的可用数据非常有限。元学习的核心思想是通过经验学习如何学习…...

uniapp展示本地pdf + 自定义标题

概要 本文主要讲述uniapp打包的Android项目如何展示本地的PDF文件&#xff0c;并设置标题 需求分析 1、因为是打包的Android项目展示本地的PDF文件&#xff0c;首先需要拿到这个本地的PDF文件路径 2、如何在uniapp的vue页面中展示PDF&#xff0c;因为没有直接展示PDF文件的…...

国标GB28181设备管理软件EasyGBS国标GB28181-2016平台更换SQLite数据库的步骤

在当今数字化、智能化的时代&#xff0c;视频监控系统已成为各行各业不可或缺的一部分。国标GB28181设备管理软件EasyGBS&#xff0c;作为一款功能强大的国标视频云服务平台&#xff0c;凭借其广泛的应用场景和卓越的性能&#xff0c;在智慧城市、智慧园区、智慧交通、智慧医疗…...

C++基础与实用技巧第三节:内存管理与性能优化

第二章&#xff1a;C基础与实用技巧 第三节&#xff1a;内存管理与性能优化 1. 动态内存的管理策略与技巧 动态内存管理是C编程的核心部分之一&#xff0c;合理管理内存可以极大提高程序的性能和稳定性。在C中&#xff0c;动态内存的分配和释放通常使用new和delete运算符&am…...

【移动应用开发】界面设计(二)实现水果列表页面

续上一篇博客 【移动应用开发】界面设计&#xff08;一&#xff09;实现登录页面-CSDN博客 目录 一、采用ViewBinding实现一个RecyclerView 1.1 在app/build.gradle中添加recyclerview依赖&#xff0c;并打开viewBinding &#xff08;1&#xff09;在app/build.gradle中添加…...

基于Multisim的四人智力竞赛抢答器设计与仿真

1&#xff09;设计任务 设计一台可供 4 名选手参加比赛的智力竞赛抢答器。 用数字显示抢答倒计时间&#xff0c;由“9”倒计到“0”时&#xff0c;无人抢答&#xff0c;蜂鸣器连续响 1 秒。选手抢答时&#xff0c;数码显示选手组号&#xff0c;同时蜂鸣器响 1 秒&#xff0c;倒…...

前端学习---(4)js基础-2

事件: 事件的三要素&#xff1a;事件源、事件、事件驱动程序。 事件处理步骤: &#xff08;1&#xff09;获取事件源&#xff1a;document.getElementById(“box”); // 类似于Android里面的findViewById &#xff08;2&#xff09;绑定事件&#xff1a; 事件源box.事件onclick…...

重生之“我打数据结构,真的假的?”--3.栈和队列(无习题)

栈和队列 C语言中的栈和队列总结 在C语言中&#xff0c;**栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;**是两种非常重要的数据结构。它们广泛用于各种应用中&#xff0c;比如内存管理、任务调度、表达式求值等。本文将对这两种数据结构进行详细的介…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...