Problem : https://leetcode.com/problems/rotating-the-box/
This problem is similar to removing zeros from the input array.
class Solution:
def rotateTheBox(self, box: List[List[str]]) -> List[List[str]]:
ROW = len(box)
COLUMN = len(box[0])
for y in range(ROW):
i = COLUMN - 1
for x in reversed(range(COLUMN)):
if box[y][x] == '#':
box[y][i] = box[y][x]
i -= 1
elif box[y][x] == '*':
# set positions between the last empty and the obstacle as empty spaces.
while i > x:
box[y][i] = '.'
i -= 1
while i >= 0 and box[y][i] == '*':
i -= 1
# set the rest positions as empty spaces
while i >= 0:
box[y][i] = '.'
i -= 1
# rotate the board 90 degrees clockwise
result = [[''] * ROW for _ in range(COLUMN)]
for y in range(ROW):
for x in range(COLUMN):
result[x][ROW-y-1]= box[y][x]
return result