Ctrl K

Следующий шаг колонии клеток

Средняя
Поле field размером m × n — колония клеток: 1 — живая клетка, 0 — пустая. Соседи клетки — до восьми окружающих её клеток (по сторонам и по диагоналям); за краем поля клеток нет. За один шаг все клетки меняются одновременно по правилам: - живая клетка, у которой 2 или 3 живых соседа, остаётся живой, иначе гибнет; - пустая клетка, у которой ровно 3 живых соседа, оживает, иначе остаётся пустой. Переведите колонию на один шаг вперёд и верните новое поле. Важно: новое состояние клетки зависит только от старого состояния соседей. Попробуйте обойтись без копии поля.
Пример 1
field=[[0, 0, 0], [1, 1, 1], [0, 0, 0]] → [[0, 1, 0], [0, 1, 0], [0, 1, 0]]

Горизонтальная тройка становится вертикальной: [[0, 1, 0], [0, 1, 0], [0, 1, 0]]. У крайних клеток по одному живому соседу — они гибнут, у верхней и нижней средних клеток ровно три соседа — они оживают.

Пример 2
field=[[1, 1], [1, 1]] → [[1, 1], [1, 1]]

У каждой клетки квадрата по три живых соседа — поле не меняется.

Пример 3
field=[[1, 0, 1]] → [[0, 0, 0]]

У обеих живых клеток нет живых соседей — обе гибнут: [[0, 0, 0]].

Ограничения
  • 1 ≤ m, n ≤ 25
  • field[i][j] — 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяЗигзаг по диагоналям СредняяТри в ряд до упора СредняяСпираль наружу Средняя
загружаем Python…
Вход
field=[[0, 0, 0], [1, 1, 1], [0, 0, 0]]
Ожидается
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]

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