[Python] Easy explanation
First, move every stone to the right, (or you can rotate the box first and then drop stones. Both as fine).\nThe current location of stone does not matter. \nWe
**First**, move every stone to the right, (or you can rotate the box first and then drop stones. Both as fine).\nThe current location of stone does not matter. \nWe only need to remember how many stones each interval (seperated by obstacles) has, \nand place the stones before the first seeing obstacle.\n\n**Second**, rotate the box. Same as **Leetcode problem # 48 Rotate Image**. \n```\nclass Solution:\n    def rotateTheBox(self, box: List[List[str]]) -> List[List[str]]:\n        # move stones to right, row by row\n        for i in range(len(box)):\n            stone = 0\n            for j in range(len(box[0])):\n                if box[i][j] == \'#\': # if a stone\n                    stone += 1\n                    box[i][j] = \'.\'\n                elif box[i][j] == \'*\': # if a obstacle\n                    for m in range(stone):\n                        box[i][j-m-1] = \'#\'\n                    stone = 0\n            # if reaches the end of j, but still have stone\n            if stone != 0:\n                for m in range(stone):\n                        box[i][j-m] = \'#\'\n        \n        # rotate box, same as leetcode #48\n        box[:]  = zip(*box[::-1])\n        \n        return box\n```
['Array', 'Python', 'Python3']