📜  用于将矩阵旋转 45 度的 Python3 程序

📅  最后修改于: 2022-05-13 01:55:24.990000             🧑  作者: Mango

用于将矩阵旋转 45 度的 Python3 程序

给定一个大小为N*N的矩阵mat[][] ,任务是将矩阵旋转45 度并打印矩阵。

例子:

方法:按照以下步骤解决问题:

  1. 使用计数器变量将对角线元素存储在列表中。
  2. 打印使输出看起来像所需模式所需的空格数。
  3. 反转列表后打印列表元素。
  4. 仅遍历对角元素以优化操作所花费的时间。

下面是上述方法的实现:

Python3
# Python3 program for the above approach
  
# Function to rotate matrix by 45 degree
  
  
def matrix(n, m, li):
  
    # Counter Variable
    ctr = 0
    while(ctr < 2 * n-1):
        print(" "*abs(n-ctr-1), end ="")
        lst = []
  
        # Iterate [0, m]
        for i in range(m):
  
                # Iterate [0, n]
            for j in range(n):
  
                # Diagonal Elements
                # Condition
                if i + j == ctr:
  
                    # Appending the
                    # Diagonal Elements
                    lst.append(li[i][j])
  
        # Printing reversed Diagonal
        # Elements
        lst.reverse()
        print(*lst)
        ctr += 1
  
  
# Driver Code
  
# Dimensions of Matrix
n = 8
m = n
  
# Given matrix
li = [[4, 5, 6, 9, 8, 7, 1, 4],
      [1, 5, 9, 7, 5, 3, 1, 6],
      [7, 5, 3, 1, 5, 9, 8, 0],
      [6, 5, 4, 7, 8, 9, 3, 7],
      [3, 5, 6, 4, 8, 9, 2, 1],
      [3, 1, 6, 4, 7, 9, 5, 0],
      [8, 0, 7, 2, 3, 1, 0, 8],
      [7, 5, 3, 1, 5, 9, 8, 5]]
  
# Function Call
matrix(n, m, li)


输出:
4
      1 5
     7 5 6
    6 5 9 9
   3 5 3 7 8
  3 5 4 1 5 7
 8 1 6 7 5 3 1
7 0 6 4 8 9 1 4
 5 7 4 8 9 8 6
  3 2 7 9 3 0
   1 3 9 2 7
    5 1 5 1
     9 0 0
      8 8
       5



时间复杂度: O(N 2 )
辅助空间: O(1)

有关详细信息,请参阅有关将矩阵旋转 45 度的完整文章!