【力扣】3274. 检查棋盘方格颜色是否相同

一、题目

给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。以下是棋盘格的参考图:

如果这两个方格颜色相同,返回 true,否则返回 false。坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。

示例:

输入:

coordinate1 = "a1", coordinate2 = "c3"

输出:

true

二、题解

思路:

通过观察发现处于黑格的坐标,无论是横坐标还是纵坐标,奇偶性是相同的,就比如a1,横坐标a换算成ascll为97是奇数,纵坐标1也是奇数。反之奇偶性不同则是白块。

自写代码:

java 复制代码
class Solution {
    public boolean checkTwoChessboards(String coordinate1, String coordinate2) {
        char m1 = coordinate1.charAt(0);
        char m2 = coordinate1.charAt(1);
        char n1 = coordinate2.charAt(0);
        char n2 = coordinate2.charAt(1);
        int asc1 = (int) m1;
        int asc2 = (int) n1;
        //1黑
        if(asc1 % 2 == m2 % 2){
            if(asc2 % 2 == n2 % 2){//2黑
                return true;
            }else {//2白
                return false;
            }
        }else {//1白
            if(asc2 % 2 == n2 % 2){//2黑
                return false;
            }else {
                return true;
            }
        }
    }
}

三、官方题解

思路:

由于棋盘上的黑白格是间隔排列的,因此:

当行数变化 1 时,格子的颜色会发生变化;

当列数变化 1 时,格子的颜色会发生变化。

因此,如果两个格子之间行数的差值,与列数的差值,二者的和为偶数,说明它们的颜色相同,否则颜色不同。记两个格子分别是 c 1和 c 2,也就是:
( c 1 0 − c 2 0 ) + ( c 1 1 − c 2 1 ) (c 10 - c 20) + (c 11 - c 21) (c10−c20)+(c11−c21)

为偶数即可。

代码:

java 复制代码
class Solution {
    public boolean checkTwoChessboards(String coordinate1, String coordinate2) {
        return (coordinate1.charAt(0) - coordinate2.charAt(0) + coordinate1.charAt(1) - coordinate2.charAt(1)) % 2 == 0;
    }
}

四、总结

1、关于解题思路上,已经想到了奇偶性的问题,但是没有细想,动手写代码时写感觉到了代码的繁杂,也没有停止纠正思路,这点需要改进。

2、关于java基础,对java不熟悉,基础有待补充强化。

相关推荐
MIngYaaa52011 分钟前
2026暑期牛客多校1 2026-7-17
数据结构·算法
wabs66612 分钟前
关于图论【卡码网107.寻找存在的路线的思考】
数据结构·算法·图论
半兽先生21 分钟前
大模型技术开发与应用——4.大模型提示词工程实战
人工智能·算法
wuminyu1 小时前
JUC组件逐层剥离与深度剖析
java·linux·c语言·jvm·c++·算法
圣保罗的大教堂1 小时前
leetcode 3016. 输入单词需要的最少按键次数 II 中等
leetcode
hhzz1 小时前
机器学习-算法模型系列文章:07-SVM 一巴掌拍出来的超平面:SVM核函数选错,再干净的数据也救不了你
算法·机器学习·支持向量机
geovindu2 小时前
java: Gale-Shapley Algorithm
java·开发语言·后端·算法
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-34 通讯录的录入与显示(C语言实现)
c语言·开发语言·数据结构·算法
zander2582 小时前
LeetCode 79. 单词搜索
算法·深度优先
老洋葱Mr_Onion2 小时前
【C++】高精度模板
开发语言·c++·算法