leetcode 每日一题 检查棋盘的颜色是否相等

207 阅读1分钟

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);

};

宝子们学会了嘛。