python 卷蛇序列打印
时间: 2023-08-03 11:01:54 浏览: 51
卷蛇序列是一个在二维矩阵中按照螺旋形式打印数字的序列。对于给定的一个矩阵,按照从外到内、从左到右的顺序,依次打印出所有的数字。Python可以通过两个指针控制遍历的方向,一个指针控制行的遍历方向,一个指针控制列的遍历方向。
首先,需要判断输入的矩阵是否为空,如果为空则直接返回空列表。
然后,定义四个变量,分别表示矩阵的上边界、下边界、左边界和右边界,初始时分别为0、行数-1、0和列数-1。
接下来,循环遍历矩阵,直到上边界大于下边界或左边界大于右边界为止。在每一次循环中,依次打印矩阵上边界的元素,右边界的元素,下边界的元素和左边界的元素。每次打印后,相应的边界位置进行调整。
最后,返回打印的结果列表。
以下是Python实现的代码示例:
```python
def spiralOrder(matrix):
if not matrix:
return []
result = []
top = 0
bottom = len(matrix) - 1
left = 0
right = len(matrix[0]) - 1
while top <= bottom and left <= right:
# 从左到右打印上边界
for i in range(left, right + 1):
result.append(matrix[top][i])
top += 1
# 从上到下打印右边界
for i in range(top, bottom + 1):
result.append(matrix[i][right])
right -= 1
if top <= bottom:
# 从右到左打印下边界
for i in range(right, left - 1, -1):
result.append(matrix[bottom][i])
bottom -= 1
if left <= right:
# 从下到上打印左边界
for i in range(bottom, top - 1, -1):
result.append(matrix[i][left])
left += 1
return result
```
使用该函数可以将给定的矩阵按照卷蛇序列打印出来。