Menu
CoddyTech
flag Ar iconالعربيةdown icon

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