Вращение матрицы в Python - PullRequest
       4

Вращение матрицы в Python

0 голосов
/ 20 сентября 2018

В этой программе мне нужно повернуть матрицу на один элемент по часовой стрелке. Я сделал с кодом, но у меня проблема с удалением newlione из последней строки в данной матрице.В этой программе пользователь должен дать свой вклад.Код

def rotate(m):
    if not len(m):
        return
    top=0
    bottom=len(m)-1
    left=0
    right=len(m[0])-1
    while(left<right and top < bottom):
        prev=m[top+1][left]

        for i in range(left,right+1):
            curr=m[top][i]
            m[top][i]=prev
            prev=curr
        top+=1

        for i in range(top,bottom+1):
            curr=m[i][right]
            m[i][right]=prev
            prev=curr

        right-=1
        for i in range(right,left-1,-1):
            curr=m[bottom][i]
            m[bottom][i]=prev
            prev=curr
        bottom-=1

        for i in range(bottom,top-1,-1):
            curr=m[i][left]
            m[i][left]=prev
            prev=curr

        left+=1
        return m

def printMatrix(m):
    for row in m:
        print(' '.join(str(n) for n in row))

n = int(input())
m = []
for i in range(1,n+1):    
    l = list(map(int, input ().split ()))
    m.append(l)
marix=rotate(m)
printMatrix(m)

Контрольный пример приведен ниже

Input               
4 
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16 

Expected Output:      
5 1 2 3\n
9 10 6 4\n
13 11 7 8\n
14 15 16 12

Actual Output Which i get:
5 1 2 3\n
9 10 6 4\n
13 11 7 8\n
14 15 16 12\n

1 Ответ

0 голосов
/ 20 сентября 2018

Это просто проблема с вашей printMatrix() функцией, print() по умолчанию добавляет новую строку.Вы можете заменить его ниже, чтобы убрать последний символ новой строки (хотя я не уверен, почему это так важно):

def printMatrix(m):
    print('\n'.join(' '.join(str(n) for n in row) for row in m), end='')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...