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]]