Все ответы, которые я нахожу, предлагают итеративные решения. Есть ли рекурсивный способ решения этой проблемы? У меня есть попытка, которая кажется довольно близкой, но еще не совсем правильная. < /P>
Предположим, у меня есть эта матрица: < /p>
matrix = [
["H", "E", "L", "L"],
["N", "I", "E", "I"],
["O", "G", "R", "F"],
["T", "S", "A", "E"]
]
< /code>
Моя функция должна распечатать ... < /p>
HELLIFEASTTONIERG
< /code>
Это мой код ... < /p>
def spiral(matrix, i, j):
if i < 0 or j < 0 or i >= len(matrix) or j >= len(matrix) or matrix[j] == False:
return False
print(matrix[j])
matrix[j] = False
if j < len(matrix) and j >= i:
spiral(matrix, i, j+1)
if i < len(matrix) and i = 0 and j = 0 and i >= j:
spiral(matrix, i-1, j)
spiral(matrix, 0, 0)
< /code>
он печатает несколько спирально ... < /p>
HELLIFEASTONGIER
< /code>
Но это неверно. Можно ли каким -то образом изменить мою функцию, чтобы получить правильный выход, потому что я чувствую, как будто я близко. Или есть другое рекурсивное решение?
Подробнее здесь: https://stackoverflow.com/questions/486 ... ecursively