Leetcode1812:判断国际象棋棋盘中一个格子的颜色

题目描述:

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

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

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

代码思路:

这个代码通过计算给定坐标的字母ASCII码值和行号的和,然后判断这个和是奇数还是偶数,来确定该坐标位置是白色格子还是黑色格子。

  1. 输入解析
    • 函数 squareIsWhite 接收一个字符串 coordinates 作为输入,这个字符串代表棋盘上的一个坐标。
    • 假设输入的坐标格式是 'xy',其中 x 是字母(表示列),y 是数字(表示行)。
  2. 提取坐标信息
    • 使用 coordinates[0] 提取第一个字符(字母)并赋值给变量 s1,这个字符表示列。
    • 使用 coordinates[1] 提取第二个字符(数字)并赋值给变量 s2,这个字符表示行。
  3. 计算奇偶性
    • 使用 ord(s1) 将字符 s1(列)转换为对应的ASCII码值。
    • ord(s1) 的结果加上 int(s2)(行,已经作为字符串中的数字字符,需要转换为整数)。
    • 对上述结果取模 2,即 (ord(s1) + int(s2)) % 2
  4. 判断颜色
    • 在国际象棋中,如果我们将棋盘的左下角(例如,'a1')视为起始点,并假设它是黑色格子,那么黑色格子的坐标之和(字母的ASCII码值加上行数)将是偶数。
    • 相反,白色格子的坐标之和将是奇数。
    • 因此,如果 (ord(s1) + int(s2)) % 2 的结果是 1(奇数),则当前坐标位置是白色格子。
    • 函数返回这个布尔值,即 (ord(s1) + int(s2)) % 2 == 1

代码实现:

python 复制代码
class Solution:
    def squareIsWhite(self, coordinates: str) -> bool:
        s1=coordinates[0]
        s2=coordinates[1]
        return (ord(s1)+int(s2))%2==1
相关推荐
dNGUZ7UGj1 小时前
10分钟完成第一个Python小游戏
python·django
2601_954526751 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
没有梦想的咸鱼185-1037-16631 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
霸道流氓气质1 小时前
SpringBoot中通用工具类库(Utils)封装与使用实践
spring boot·后端·python
叩码以求索2 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
Draina3 小时前
CBC填充预言攻击-CBC Padding Oracle Crypto Attack
python·安全·web安全·网络安全·密码学·安全性测试
c238563 小时前
把 C++ 内存分配拆透:new 与 malloc 的三层血缘
开发语言·c++·算法
Angel Q.4 小时前
特征提取 | DINO 到 DINOv3
图像处理·python
不如语冰4 小时前
AI大模型入门-pytorch-张量2 tensor创建
python
NPE~4 小时前
[AI]Agent开发——ADK框架使用
人工智能·python·ai·教程·adk·agent开发