5705. 判断国际象棋棋盘中一个格子的颜色

该博客主要介绍了如何根据给定的国际象棋棋盘坐标判断格子颜色。通过解析坐标并利用棋盘黑白相间的规律,可以确定格子是白色还是黑色。示例代码展示了两种不同的实现方式,分别通过简单的数学公式和创建棋盘矩阵来检查颜色。

给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。

如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。

给定坐标一定代表国际象棋棋盘上一个存在的格子。坐标第一个字符是字母,第二个字符是数字。

 

示例 1:

输入:coordinates = "a1"
输出:false
解释:如上图棋盘所示,"a1" 坐标的格子是黑色的,所以返回 false 。

示例 2:

输入:coordinates = "h3"
输出:true
解释:如上图棋盘所示,"h3" 坐标的格子是白色的,所以返回 true 。

示例 3:

输入:coordinates = "c7"
输出:false

 

提示:

  • coordinates.length == 2
  • 'a' <= coordinates[0] <= 'h'
  • '1' <= coordinates[1] <= '8'
package Solution5705;

class Solution {
	public boolean squareIsWhite(String coordinates) {
		String[] index = coordinates.split("");
		int x = index[0].charAt(0) - 'a';
		int y = Integer.parseInt(index[1]) - 1;
		if ((x + y) % 2 == 0) {
			return false;
		}
		return true;
	}

	public static void main(String[] args) {

		Solution sol = new Solution();
		String coordinates = "c7";
		System.out.println(sol.squareIsWhite(coordinates));
	}

}
package Solution5705;

class Solution {
	public boolean squareIsWhite(String coordinates) {
		boolean[][] board = new boolean[8][8];
		for (int i = 0; i < 8; i++) {
			for (int j = 0; j < 8; j++) {
				if ((i + j) % 2 == 0) {
					board[i][j] = false;
				} else {
					board[i][j] = true;
				}
			}
		}
//		for (int i = 0; i < 8; i++) {
//			System.out.println(Arrays.toString(board[i]));
//		}
		String[] index = coordinates.split("");
		int x = index[0].charAt(0) - 'a';
		int y = Integer.parseInt(index[1]) - 1;
//		System.out.println(x);
//		System.out.println(y);
		return board[x][y];
	}

	public static void main(String[] args) {

		Solution sol = new Solution();
		String coordinates = "c7";
		System.out.println(sol.squareIsWhite(coordinates));
	}

}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值