我找到的所有答案都是提出迭代解决方案。有没有递归的方法来解决这个问题?我有一个似乎很接近但还不完全正确的尝试。在
假设我有这个矩阵:
matrix = [
["H", "E", "L", "L"],
["N", "I", "E", "I"],
["O", "G", "R", "F"],
["T", "S", "A", "E"]
]
我的函数应该打印。。。在
^{pr2}$这是我的密码。。。在
def spiral(matrix, i, j):
if i < 0 or j < 0 or i >= len(matrix) or j >= len(matrix) or matrix[i][j] == False:
return False
print(matrix[i][j])
matrix[i][j] = False
if j < len(matrix) and j >= i:
spiral(matrix, i, j+1)
if i < len(matrix) and i <= j:
spiral(matrix, i+1, j)
if j >= 0 and j <= i:
spiral(matrix, i , j-1)
if i >= 0 and i >= j:
spiral(matrix, i-1, j)
spiral(matrix, 0, 0)
它有点螺旋形。。。在
HELLIFEASTONGIER
但这是不正确的。有没有可能改变我的函数,以获得正确的输出,因为我觉得我好像接近了。或者还有其他递归解决方案吗?在
简单而干净的螺旋形(Python3+)
下面是一个逐层解决问题的递归解决方案,从最外层开始,顺时针:
相关问题 更多 >
编程相关推荐