สมมติว่าเรามีเมทริกซ์ M (n คูณ n) เราต้องหาทรานสโพสของมัน ดังที่เราทราบทรานสโพสของเมทริกซ์สลับดัชนีแถวและคอลัมน์ เป็นทางการมากขึ้น สำหรับทุก ๆ r และ c, matrix[r][c] =matrix[c][r].
ดังนั้นหากอินพุตเป็นแบบ
7 | 2 | 6 |
3 | 7 | 2 |
5 | 3 | 7 |
แล้วผลลัพธ์ที่ได้จะเป็น
7 | 3 | 5 |
2 | 7 | 3 |
6 | 2 | 7 |
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- M :=รายการใหม่
- ตัวติดตาม :=0
- ในขณะที่ตัวติดตาม <นับแถวของเมทริกซ์ ทำ
- temp :=รายการใหม่
- สำหรับแต่ละแถวในเมทริกซ์ ให้ทำ
- temp :=เข้าร่วม temp และรายการที่มีแถวองค์ประกอบ[ติดตาม]
- M :=M เข้าร่วมรายการอื่นด้วยองค์ประกอบชั่วคราว
- ตัวติดตาม :=ตัวติดตาม + 1
- คืน M
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, matrix): M = [] tracker = 0 while tracker < len(matrix): temp = [] for row in matrix: temp += [row[tracker]] M += [temp] tracker += 1 return M ob = Solution() matrix = [ [7, 2, 6], [3, 7, 2], [5, 3, 7] ] print(ob.solve(matrix))
อินพุต
[[7, 2, 6], [3, 7, 2], [5, 3, 7]]
ผลลัพธ์
[[7, 3, 5], [2, 7, 3],[6, 2, 7]]