- 作者:老汪软件技巧
- 发表时间:2024-12-04 11:05
- 浏览量:
leetcode 每日一题 检查棋盘的颜色是否相等
哈喽哈喽,大家好,我是你们的金樽清酒,下班回来刷一道leetcode,力扣启动。好家伙,昨天的每日一题没做出来,N皇后问题,今天终于来了一道简单题。
宝子们先看题
给你两个字符串coordinate1和coordinate2,代表8 x 8国际象棋棋盘上的两个方格的坐标。
以下是棋盘的参考图。
如果这两个方格颜色相同,返回true,否则返回false。
坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。
示例 1:
输入: coordinate1 = "a1", coordinate2 = "c3"
输出: true
解释:
两个方格均为黑色。
示例 2:
输入: coordinate1 = "a1", coordinate2 = "h3"
输出: false
解释:
方格"a1"是黑色,而"h3"是白色。
就是给你两个坐标,判断它们是否是相同的颜色。通过观察找规律,我发现,把字母a,b,c,d转化成对应的1,2,3,4,横纵坐标相减为偶数则为黑色。那奇-偶=奇,偶-偶=偶,小学数学啦,有幸小学数学没忘()。那其实对应的字母可以为0/1。然后判断每个方格的颜色。最后判断是否两个方格相同的颜色。
上代码
var checkTwoChessboards = function (coordinate1, coordinate2) {
//打表方式可以写,但是没哟必要,这种就是纯找规律。
const isOddLetter = (letter) => "aceg".includes(letter) ? 1 : 0;
const getColor = (coordinate) => {
let letter = coordinate[0];
let number = +coordinate[1];
return (number - isOddLetter(letter)) % 2 === 0 ? '黑' : '白';
};
return getColor(coordinate1) === getColor(coordinate2);
};
宝子们学会了嘛。