实现方阵顺时针旋转的算法可以采用原地旋转法。代码流程如下:
1.将方阵顺时针旋转90度,可以先将方阵进行转置,然后将每一行倒序排列即可。
2.将方阵顺时针旋转180度,可以先将方阵进行上下翻转,再进行左右翻转即可。
3.将方阵顺时针旋转270度,可以先将方阵进行转置,然后将每一列倒序排列即可。
下面是具体的实现代码:
#方阵顺时针旋转90度
def rotate(matrix):
n = len(matrix)
#转置矩阵
for i in range(n):
for j in range(i, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
#倒序排列每行
for i in range(n):
matrix[i].reverse()
return matrix
#方阵顺时针旋转180度
def rotate(matrix):
n = len(matrix)
#上下翻转矩阵
for i in range(n // 2):
matrix[i], matrix[n - i - 1] = matrix[n - i - 1], matrix[i]
#左右翻转矩阵
for i in range(n):
for j in range(i):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
return matrix
#方阵顺时针旋转270度
def rotate(matrix):
n = len(matrix)
#转置矩阵
for i in range(n):
for j in range(i, n):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
#倒序排列每列
for i in range(n // 2):
for j in range(n):
matrix[j][i], matrix[j][n - i - 1] = matrix[j][n - i - 1], matrix[j][i]
return matrix
下面是两个示例:
示例一:
对于一个3*3的方阵:
1 2 3
4 5 6
7 8 9
顺时针旋转90度后变为:
7 4 1
8 5 2
9 6 3
示例二:
对于一个4*4的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
顺时针旋转180度后变为:
16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1
以上就是方阵顺时针旋转的实现代码的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:方阵顺时针旋转的实现代码 - Python技术站