解析输入位置:输入的字符串长度为 2,第一个字符为列标号(小写字母 a~h),第二个字符为行编号(数字 1~8)。将其转换为 0 起始的坐标索引:
c = s[0] - 'a'(0~7)r = s[1] - '1'(0~7)定义八个方向:激光同时向正上、正下、正左、正右以及四个对角线方向传播。可用方向数组表示八个方向的偏移量:
dr = [-1, -1, -1, 0, 1, 1, 1, 0]
dc = [-1, 0, 1, 1, 1, 0, -1, -1]
在一个 8×8 的样品台上,行用数字 1 到 8 编号,列用小写字母 a 到 h 编号。在某一个格子中安装了一台激光扫描仪,它能同时向八个方向发射激光:正上、正下、正左、正右以及四个对角线方向。激光会沿直线传播并覆盖沿途所有格子,直到样品台的边界。扫描仪自身所在的格子不会被激光覆盖。
给定扫描仪的安装位置,请计算出所有会被激光覆盖的格子,并按字典序输出。
约束:样品台大小固定为 8×8,输入的位置保证合法,即列标号为 a 到 h 之一,行编号为 1 到 8 之一的数字。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册