Ctrl K

Совпадение после поворота

Лёгкая
На столе лежит квадратная плитка-трафарет grid размером n × n: каждая клетка либо прорезана (1), либо нет (0). Есть и образец goal того же размера. Плитку можно поворачивать на столе на 90° сколько угодно раз (переворачивать на другую сторону нельзя). Верните True, если после какого-то числа поворотов (возможно, нуля) плитка совпадёт с образцом клетка в клетку, и False иначе.
Пример 1
grid=[[1, 1], [0, 0]], goal=[[0, 1], [0, 1]] → True

Поворот на 90° по часовой стрелке переносит верхнюю строку в правый столбец — получается goal.

Пример 2
grid=[[1, 0], [0, 0]], goal=[[0, 1], [1, 0]] → False

В grid одна единица, а в goal две — никакой поворот этого не исправит.

Пример 3
grid=[[0, 0, 1], [0, 1, 0], [0, 0, 0]], goal=[[0, 0, 0], [0, 1, 0], [1, 0, 0]] → True

Поворот на 180° переносит угловую клетку из правого верхнего угла в левый нижний.

Ограничения
  • 1 ≤ n ≤ 10
  • grid и goal — квадратные матрицы n × n
  • Каждая клетка равна 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКроссворд, читаемый в обе стороны ЛёгкаяДлина береговой линии ЛёгкаяПереложить в другой лоток ЛёгкаяРазмытие картинки ЛёгкаяИнструмент «Заливка» Лёгкая
загружаем Python…
Вход
grid=[[1, 1], [0, 0]], goal=[[0, 1], [0, 1]]
Ожидается
True

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