Ctrl K

Мирные ферзи

Сложная
На шахматной доске size × size нужно поставить size ферзей так, чтобы ни один из них не бил другого: никакие два ферзя не стоят на одной горизонтали, вертикали или диагонали. Верните все такие расстановки. Каждая расстановка — это список из size строк длины size, по строке на каждую горизонталь доски сверху вниз; клетка с ферзём обозначается символом 'Q', пустая — символом '.'. Если расстановок нет, верните пустой список. Порядок расстановок в ответе не важен.
Пример 1
size=4 → [['.Q..', '...Q', 'Q...', '..Q.'], ['..Q.', 'Q...', '...Q', '.Q..']]

На доске 4 × 4 ровно две расстановки, в которых никакие два ферзя не бьют друг друга.

Пример 2
size=3 → []

На доске 3 × 3 как ни ставь трёх ферзей, какие-то два обязательно бьют друг друга, поэтому расстановок нет.

Пример 3
size=1 → [['Q']]
Ограничения
  • 1 ≤ size ≤ 9
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДорешать судоку СложнаяВсе способы расставить пробелы СложнаяСлова в буквенной сетке СложнаяКратчайшее однозначное сокращение СложнаяЗеркальные блоки из слов Сложная
загружаем Python…
Вход
size=4
Ожидается
[['.Q..', '...Q', 'Q...', '..Q.'], ['..Q.', 'Q...', '...Q', '.Q..']]

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