Шахматная доска
Вы решили задачу. Теперь можно сравнить подходы.
Выбираем символ по чётности суммы индексов.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Формула для клетки
Индексы начинаются с нуля, поэтому в левом верхнем углу чётная сумма и точка.
n, m = map(int, input().split())
a = [['.' if (i + j) % 2 == 0 else '*' for j in range(m)] for i in range(n)]
for row in a:
print(*row)
Время: O(nm). Память: O(nm), создана матрица по условию.
Другой способ: Чередование символов
Переключаем символ после каждой клетки, а начальный символ — после каждой строки.
n, m = map(int, input().split())
a = []
first = '.'
for i in range(n):
row = []
char = first
for j in range(m):
row.append(char)
char = '*' if char == '.' else '.'
a.append(row)
first = '*' if first == '.' else '.'
for row in a:
print(*row)
Время: O(nm). Память: O(nm).
На что обратить внимание
- Нечётная ширина не должна нарушать чередование начала строк.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.