当前位置: 首页> 教育> 大学 > 扬中百事通_广州公司注册代理_网站seo服务商_cpc广告点击日结联盟

扬中百事通_广州公司注册代理_网站seo服务商_cpc广告点击日结联盟

时间:2025/9/7 11:57:00来源:https://blog.csdn.net/qq_52200849/article/details/144224849 浏览次数:0次
扬中百事通_广州公司注册代理_网站seo服务商_cpc广告点击日结联盟

一、题目

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

coordinate1 = “a1”, coordinate2 = “c3”

输出:

true

二、题解

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

自写代码:

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 1[0] - c 2[0]) + (c 1[1] - c 2[1]) (c1[0]c2[0])+(c1[1]c2[1])
为偶数即可。
代码:

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不熟悉,基础有待补充强化。

关键字:扬中百事通_广州公司注册代理_网站seo服务商_cpc广告点击日结联盟

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: