首页 > 解决方案 > 获取此矩阵的对角线

问题描述

我正在尝试创建一个函数,该函数将从我的单词搜索难题的列表(即矩阵)中的列表中获取对角线。

def get_left_up (start_x, start_y, board):
word = []
for row in range (start_x, -1,-1):
    for col in range (start_y,-1, -1):
        word.append(board[row][col])
word = ''.join(word)
return word

get_left_down (start_x, start_y, board):
word = []
for row in range (start_x,len(board)):
    for col in range (start_y,-1,-1):
        word.append(board[row][col])
word = ''.join(word)
return word

def get_right_up (start_x, start_y, board):
word= []
for row in range (start_x,-1,-1):
    for col in range (start_y,len(board)):
        word.append(board[row][col])
word = ''.join(word)
return word

def get_right_down (start_x, start_y, board):
word = []
for row in range (start_x, len(board)):
    for col in range (start_y,len(board)):
      word.append(board[row][col])
word = ''.join(word)
return word

截至目前,那些我应该处理的功能。然而,有些不对劲。我打算将与正在搜索的单词匹配的第一个字母的坐标的参数输入到板上,并从对角线的每个方向连接字符。

标签: pythonsearchworddiagonal

解决方案


对于右下对角线,您需要在同一迭代中增加 x- 和 y- ,而不是循环遍历特定行的所有列条目。

def get_right_down (start_x, start_y, board):
   word = []
   col = start_y
   for row in range (start_x, len(board)):
      if col >= len(board):
         break
      word.append(board[row][col])
      col = col + 1
   return ''.join(word)

推荐阅读