#84 · Simulation · Intermediate · 70 XP · about 14 min
Start at the top-left corner of a grid of numbers and walk clockwise around the outside: right along the top row, down the right column, left along the bottom row and up the left column. Then do the same with the ring inside it, and keep going until every cell has been visited exactly once.
Write spiral_order(matrix) that returns the values in the order you visit them. matrix is a list of rows that all have the same length, and it can be empty.
spiral_order([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # returns [1, 2, 3, 6, 9, 8, 7, 4, 5] spiral_order([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # returns [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7] spiral_order([[1], [2], [3]]) # returns [1, 2, 3]
Ready?
Accept the challenge to start writing. A small timer counts the time this page is in view.
Output appears here.