• 作者:老汪软件技巧
  • 发表时间: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。然后判断每个方格的颜色。最后判断是否两个方格相同的颜色。

棋盘ab颜色一样_js比较字符串是否相等_

上代码

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

宝子们学会了嘛。