Python项目:二维N×N网格绘制对角X形状功能实现语法问题
实现代码
def mark_the_spot(grid: list, sign: str) -> list: n = len(grid) for row_idx in range(n): # 填充主对角线位置 grid[row_idx][row_idx] = sign # 填充副对角线位置 grid[row_idx][n - 1 - row_idx] = sign return grid
实现逻辑
- 先获取网格的边长
n,题目已限定输入为N×N的正奇数网格,无需做额外参数校验 - 逐行遍历网格:
- 主对角线的坐标规则为行号等于列号,直接替换为指定字符
- 副对角线的坐标规则为列号 = 边长-1 - 行号,直接替换为指定字符
- 重复赋值中间交点位置不会影响最终结果,无需额外做去重判断,代码更简洁易读
验证示例
你可以用题目给出的测试用例直接验证,返回结果和示例完全一致:
# 3x3网格测试 grid_3 = [[" ", " ", " "], [" ", " ", " "], [" ", " ", " "]] result_3 = mark_the_spot(grid_3, 'X') for row in result_3: print(row) # 输出: # ['X', ' ', 'X'] # [' ', 'X', ' '] # ['X', ' ', 'X'] # 7x7网格测试 grid_7 = [[" "]*7 for _ in range(7)] result_7 = mark_the_spot(grid_7, '#') for row in result_7: print(row) # 输出和题目给出的7x7示例完全一致
内容的提问来源于stack exchange,提问作者Ablay Kabash
相关产品推荐
相关产品推荐

