- 👑专栏内容:力扣刷题
- ⛪个人主页:子夜的星的主页
- 💕座右铭:前路未远,步履不停
目录
- 一、题目描述
- 二、题目分析
一、题目描述
题目链接:判断国际象棋棋盘中一个格子的颜色
给你一个坐标 coordinates
,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。
如果所给格子的颜色是白色,请你返回 true
,如果是黑色,请返回 false
。给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。
二、题目分析
这道题下面的a,b,c啥的很讨厌,因为不是数字。
但我们可以通过字符的 ASCII 码值进行转换,例如'a' - 'a'
的结果就是0;
题目给的是两个字符,我们可以用String
类里面的charAt
方法获取字符。
charAt
方法是 Java 中 String
类的一个方法,用于获取字符串中指定位置的字符。该方法的语法如下:
char charAt(int index)
这个方法接受一个整数参数 index
,表示要获取的字符的位置。字符串中的索引从 0 开始,即第一个字符的索引是 0,第二个字符的索引是 1,以此类推。如果 index
超出字符串的有效范围,会抛出 StringIndexOutOfBoundsException
异常。
知道了这个后,我们就可以把象棋棋盘上的格子转化为坐标。
例如'a1'
我们就可以用如下代码:
int a = coordinates.charAt(0) - 'a';
int b = coordinates.charAt(1) - '1';
这样'a1'
就被我们转化为了00
我们观察一下象棋盘,会发现,当转化为坐标后,x坐标 + y坐标的和为偶数就为黑色,为奇数就为白色。所以这道题就非常简单了。
class Solution {
public boolean squareIsWhite(String coordinates) {
int a = coordinates.charAt(0);
int b = coordinates.charAt(1);
if((a+b) % 2 == 0){
return false;
}else{
return true;
}
}
}