好看的 网站正在建设中源码,网站建设视频上传,网址安全检测中心,网站技术建设维护技术论文一、题目 给你两个字符串 coordinate1 和 coordinate2#xff0c;代表 8 x 8 国际象棋棋盘上的两个方格的坐标。 以下是棋盘的参考图。 如果这两个方格颜色相同#xff0c;返回 true#xff0c;否则返回 false。 坐标总是表示有效的棋盘方格。坐标的格式总是先…
一、题目 给你两个字符串 coordinate1 和 coordinate2代表 8 x 8 国际象棋棋盘上的两个方格的坐标。 以下是棋盘的参考图。 如果这两个方格颜色相同返回 true否则返回 false。 坐标总是表示有效的棋盘方格。坐标的格式总是先字母表示列再数字表示行。
二、示例
示例 1
输入 coordinate1 a1, coordinate2 c3
输出 true
解释
两个方格均为黑色。示例 2
输入 coordinate1 a1, coordinate2 h3
输出 false
解释
方格 a1 是黑色而 h3 是白色。提示
coordinate1.length coordinate2.length 2‘a’ coordinate1[0], coordinate2[0] ‘h’‘1’ coordinate1[1], coordinate2[1] ‘8’
三、思路 把 coordinate1 和 coordinate2 简记为 s 和 t。 根据题目中的图片如果 s[0] 和 s[1] 的 ASCII 值的奇偶性相同那么格子是黑格否则是白格。 进一步地由于 奇数 奇数 偶数偶数 偶数 偶数所以如果 (s[0] s[1]) mod 2 是偶数那么格子是黑格否则 奇数 偶数 奇数格子是白格。 如果 (s[0] s[1]) mod 2 (t[0] t[1]) mod 2那么两个格子颜色相同否则不同。
四、解法
package com.example.demo.test;public class CheckTwoChessboards {public boolean checkTwoChessboards(String coordinate1, String coordinate2) {// 查找差值int dif1 coordinate2.charAt(0) - coordinate1.charAt(0);int dif2 coordinate2.charAt(1) - coordinate1.charAt(1);return (dif1 1) (dif2 1);}public static boolean checkTwoChessboards1(String coordinate1, String coordinate2) {// 查找差值int dif1 Math.abs(coordinate2.charAt(0) - coordinate1.charAt(0));int dif2 Math.abs(coordinate2.charAt(1) - coordinate1.charAt(1));// 奇偶性相同return (dif1 % 2) (dif2 % 2);}public static boolean checkTwoChessboards2(String coordinate1, String coordinate2) {int dif1 coordinate1.charAt(0) coordinate1.charAt(1);int dif2 coordinate2.charAt(0) coordinate2.charAt(1);// 奇偶性相同return (dif1 % 2) (dif2 % 2);}public static void main(String[] args) {String a h7;String b c8;System.out.println(checkTwoChessboards1(a, b));}
}