1class Solution {2public:3vector<vector<char>> rotateTheBox(vector<vector<char>> &box) {4int m = box.size();5int n = box[0].size();67vector<vector<char>> ans(n, vector<char>(m, '.'));89for (int i = 0; i < m; ++i) {10int k = n; // Stores last obstacle or occupied position11for (int j = n - 1; j >= 0; --j) {12if (box[i][j] == '#') {13ans[--k][i] = '#';14} else if (box[i][j] == '*') {15k = j;16ans[j][i] = '*';17}18}19}20for (int i = 0; i < n; ++i) {21reverse(ans[i].begin(), ans[i].end());22}23return ans;24}25};