Ctrl K

Опрокинутый ящик с камнями

Средняя
Ящик нарисован сбоку в виде сетки crate из m строк и n столбцов. В каждой клетке один из символов: - '#' — камень; - '*' — полка, намертво закреплённая в ящике; - '.' — пустота. Ящик опрокидывают на правый бок, то есть поворачивают на 90° по часовой стрелке. После поворота камни падают вниз под действием тяжести, пока не упрутся в полку, в другой камень или в дно ящика. Полки остаются на своих местах, а камни двигаются строго вертикально — вбок их не сносит. Верните картинку ящика после поворота и падения камней: сетку из n строк и m столбцов.
Пример 1
crate=[["#", "#", ".", "*", "#", "."]] → [['.'], ['#'], ['#'], ['*'], ['.'], ['#']]

После поворота строка становится столбцом, а «низ» — её правым концом. Два камня слева съезжают до полки *, правый камень падает на дно.

Пример 2
crate=[[".", "#"], ["#", "."]] → [['.', '.'], ['#', '#']]

Нижняя строка ящика становится левым столбцом, верхняя — правым. В обоих столбцах камень оказывается на дне.

Ограничения
  • 1 ≤ m, n ≤ 500
  • Все строки crate одной длины n
  • crate[i][j] — один из символов '#', '*', '.'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТри в ряд до упора СредняяЗеркальные строки или столбцы СредняяЗеркальное табло с единицами по четыре СредняяЗеркало и негатив ЛёгкаяСколько клеток зальёт вода Сложная
загружаем Python…
Вход
crate=[["#", "#", ".", "*", "#", "."]]
Ожидается
[['.'], ['#'], ['#'], ['*'], ['.'], ['#']]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 115 тестов на сервере, включая скрытые.