开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情
题目 leetcode.cn/
- 给你一个坐标
coordinates,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。
- 如果所给格子的颜色是白色,请你返回
true,如果是黑色,请返回false。 - 给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。
示例
-
输入: coordinates = "a1";输出: false解释: 如上图棋盘所示,"a1" 坐标的格子是黑色的,所以返回 false 。
-
输入: coordinates = "h3";输出: true解释: 如上图棋盘所示,"h3" 坐标的格子是白色的,所以返回 true 。
-
输入: coordinates = "c7";输出: false
提示
coordinates.length == 2'a' <= coordinates[0] <= 'h''1' <= coordinates[1] <= '8'
代码
function squareIsWhite(coordinates: string): boolean {
let black = ['a', 'c', 'e', 'g'];
if(black.includes(coordinates[0])){
if(Number(coordinates[1]) % 2){
return false;
}else{
return true;
}
}else{
if(Number(coordinates[1]) % 2){
return true;
}else{
return false;
}
}
};
思路
-
国际象棋棋盘是一个
8*8的矩阵,只不过他的横轴不是以数字1~8命名的,而是以字母a~h来命名的。 -
首先以横轴来观察一下,其实不难发现,横轴的奇数轴(
也就是'a','c','e','g')都是以黑色格子开始的,而偶数轴(也就是'b','d','f','h')都是以白色格子开始的。 -
然后观察一下竖轴
- 如果横轴是奇数轴,那么竖轴的奇数上对应的是黑色格子,竖轴偶数上对应是白色格子
- 如果横轴是偶数轴,那么竖轴的奇数上对应的是白色格子,竖轴偶数上对应的是黑色格子,刚好和上面反过来
-
所以首先先判断给到的坐标是横轴的奇数轴还是偶数轴
- 如果是奇数轴,再判断竖轴的坐标是奇数还是偶数,奇数就是黑色格子,返回
false,如果是偶数,那么就是白色格子,返回true - 如果是偶数轴,判断竖轴的坐标是奇数还是偶数,奇数就是白色格子,返回
true,如果是偶数,那么是黑色格子,返回false
- 如果是奇数轴,再判断竖轴的坐标是奇数还是偶数,奇数就是黑色格子,返回