print matrix in spiral form python
Python program for Spiral traversal of matrix. Here problem description and explanation.
# Python 3 program for
# Spiral form of matrix
class SpiralView :
def spiral(self, data, startRow,
startCol, endRow, endCol, element) :
i = startCol
# Left to right
while (i <= endCol and element > 0) :
element -= 1
print("", data[startRow][i], end = " ")
i += 1
i = startRow + 1
# Top to down
while (i <= endRow and element > 0) :
element -= 1
print("", data[i][endCol], end = " ")
i += 1
i = endCol - 1
# Bottom right to bottom-left
while (i >= startCol and element > 0) :
element -= 1
print("", data[endRow][i], end = " ")
i -= 1
i = endRow - 1
# Bottom left to top
while (i > startRow and element > 0) :
element -= 1
print("", data[i][startRow], end = " ")
i -= 1
if (startRow + 1 <= endRow - 1 and element > 0) :
# Recursive call
self.spiral(data, startRow + 1, startCol + 1,
endRow - 1, endCol - 1, element)
def main() :
task = SpiralView()
# Given matrix
matrix = [
[1, 2, 3, 4, 5, 6],
[22, 23, 24, 25, 26, 7],
[21, 36, 37, 38, 27, 8],
[20, 35, 42, 39, 28, 9],
[19, 34, 41, 40, 29, 10],
[18, 33, 32, 31, 30, 11],
[17, 16, 15, 14, 13, 12]
]
row = len(matrix)
col = len(matrix[0])
# Get the number of element
element = row * col
task.spiral(matrix, 0, 0, row - 1, col - 1, element)
if __name__ == "__main__": main()
Output
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment