问题背景
给你两个字符串 c o o r d i n a t e 1 coordinate1 coordinate1 和 c o o r d i n a t e 2 coordinate2 coordinate2,代表 8 × 8 8 \times 8 8×8 国际象棋棋盘上的两个方格的坐标。
以下是棋盘的参考图。
如果这两个方格颜色相同,返回 t r u e true true,否则返回 f a l s e false false。
坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。
数据约束
- c o o r d i n a t e 1. l e n g t h = c o o r d i n a t e 2. l e n g t h = 2 coordinate1.length = coordinate2.length = 2 coordinate1.length=coordinate2.length=2
- 'a' ≤ c o o r d i n a t e 1 [ 0 ] , c o o r d i n a t e 2 [ 0 ] ≤ \le coordinate1[0], coordinate2[0] \le ≤coordinate1[0],coordinate2[0]≤'h'
- '1' ≤ c o o r d i n a t e 1 [ 1 ] , c o o r d i n a t e 2 [ 1 ] ≤ \le coordinate1[1], coordinate2[1] \le ≤coordinate1[1],coordinate2[1]≤'8'
解题过程
观察发现,颜色不同的格子总是相邻的。
如果行号和列号都转化为 [ 0 , 7 ] [0, 7] [0,7]范围内的整数,相邻的格子行号与列号之和奇偶性一定是不同的。
具体实现
java
class Solution {
public boolean checkTwoChessboards(String coordinate1, String coordinate2) {
return ((coordinate1.charAt(0) - 'a') + (coordinate1.charAt(1) - '0')) % 2 ==
((coordinate2.charAt(0) - 'a') + (coordinate2.charAt(1) - '0')) % 2;
}
}