Мини-урок · перед практикой

Снежинка

Звёздочка объединяет центральные линии и обе диагонали.

Как к ней подойти

Разберитесь, как работать со строками и столбцами двумерного массива, не путая индексы.

Коротко о теме

Двумерный массив читают по двум координатам: сначала строка, затем столбец. Вложенные циклы обходят все ячейки или только нужную часть таблицы. Сверьте размеры массива и границы обоих индексов.

Ключевая идея · Условие для клетки

Клетка становится звёздочкой при принадлежности хотя бы одной из четырёх линий.

Проверьте перед запуском

  • Строки массива должны быть независимыми списками.
  • Между символами при выводе нужны пробелы.

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

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Условие для клетки

Клетка становится звёздочкой при принадлежности хотя бы одной из четырёх линий.

n = int(input())
c = n // 2
a = [['*' if i == c or j == c or i == j or i + j == n - 1 else '.'
      for j in range(n)] for i in range(n)]
for row in a:
    print(*row)

Время: O(n²). Память: O(n²).

Другой способ: Нанесение линий на массив

Создаём фон, затем отдельно рисуем четыре линии. Повторная запись звёздочки в пересечениях безопасна.

n = int(input())
a = [['.'] * n for _ in range(n)]
c = n // 2
for i in range(n):
    a[c][i] = '*'
    a[i][c] = '*'
    a[i][i] = '*'
    a[i][n - 1 - i] = '*'
for row in a:
    print(*row)

Время: O(n²), включая создание и вывод массива. Память: O(n²).