Uber Interview Question

write code to print the matrix from outside to inside.

Interview Answers

Anonymous

Aug 3, 2015

in JS: function spiralize(mat) { if (!mat[0]) { return ''; } var top = 0; var right = mat[0].length - 1; var bottom = mat.length - 1; var left = 0; while (true) { var i; for (i = left; i bottom || left > right) { break; } for (i = top; i bottom || left > right) { break; } for (i = right; i >= left; i--) { console.log(mat[bottom][i]); } bottom -= 1; if (top > bottom || left > right) { break; } for (i = bottom; i >= top; i--) { console.log(mat[i][left]); } left += 1; if (top > bottom || left > right) { break; } } }

Anonymous

Aug 6, 2015

def _print_layer(matrix, start_x, start_y, end_x, end_y): for i in matrix[start_x][start_y:end_y + 1]: print i for i in xrange(start_x + 1, end_x + 1): print matrix[i][end_y] for i in xrange(end_y - 1, start_y - 1, -1): print matrix[end_x][i] for i in xrange(end_x - 1, start_x, -1): print matrix[i][start_y] def spiral(matrix): layers = len(matrix) / 2 if len(matrix) % 2 == 0 else len(matrix) / 2 + 1 for i in xrange(layers): _print_layer(matrix, i, i, len(matrix) - i - 1, len(matrix[-i - 1]) - i - 1)