Menu
CoddyTech

Transpose Matrix

Вам дана матрица целых чисел в виде списка строк: matrix[i][j] — это значение в строке i, столбце j. Верните её транспонированную матрицу — матрицу, которую получают, превращая каждую строку в столбец. Значение из строки i, столбца j перемещается в строку j, столбец i. Матрица не обязательно должна быть квадратной: матрица m × n становится матрицей n × m.

Функция

transpose(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
матрица m × n в виде списка из m строк, содержащих n целых чисел
Возвращаетinteger-2d-array
транспонированную матрицу n × m в виде списка из n строк по m целых чисел

Ограничения

  • 1 ≤ m, n ≤ 1000, где m = matrix.length и n = matrix[i].length
  • m × n ≤ 5000
  • Каждая строка имеет одинаковую длину n.
  • -1000 ≤ matrix[i][j] ≤ 1000

Примеры

Ввод
matrix = [[1, 2, 3], [4, 5, 6]]
Вывод
[[1, 4], [2, 5], [3, 6]]
Пояснение
Первая строка [1, 2, 3] становится первым столбцом, а [4, 5, 6] — вторым. Если читать результат по строкам, получим [1, 4], [2, 5], [3, 6]: матрица 2 × 3 превратилась в матрицу 3 × 2.

lock icon+15 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Предположим, матрица хранится в виде одного плоского массива из m × n значений, строка за строкой. Можешь транспонировать неквадратную матрицу внутри этого массива, не используя второй массив?

Сбросить код
def transpose(matrix):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Ввод

matrix = [[1, 2, 3], [4, 5, 6]]

Ожидается

[[1, 4], [2, 5], [3, 6]]