问题背景
给你两个字符串
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]范围内的整数,相邻的格子行号与列号之和奇偶性一定是不同的。
具体实现
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;
}
}