Генерация n строк треугольника Паскаля

Каждая строка начинается и заканчивается единицей, а внутренние элементы равны сумме двух соседних чисел предыдущей строки. Добавляйте строки последовательно в результат.

Короткий ответ

Что ответить на собеседовании

Каждая строка начинается и заканчивается единицей, а внутренние элементы равны сумме двух соседних чисел предыдущей строки. Добавляйте строки последовательно в результат.

Подробный разбор

Ответ с пояснениями

Условие

Написать функцию, получающую целое число n и возвращающую массив, содержащий первые n строк треугольника Паскаля.

def generate_pascal(n):
    # реализация функции
    pass

Функция должна корректно обрабатывать n = 0 (возвращать пустой массив) и любые положительные значения n.

Ответ

Каждая строка начинается и заканчивается единицей, а внутренние элементы равны сумме двух соседних чисел предыдущей строки. Добавляйте строки последовательно в результат.

def generate_pascal(n):
    if not isinstance(n, int) or n < 0:
        raise ValueError('n должно быть неотрицательным целым')
    rows = []
    for index in range(n):
        row = [1] * (index + 1)
        for column in range(1, index):
            row[column] = rows[-1][column - 1] + rows[-1][column]
        rows.append(row)
    return rows

При n = 0 цикл не запускается и возвращается []. Каждая строка — отдельный список. Создаётся n(n + 1)/2 элементов; стоимость арифметики дополнительно растёт с размером больших целых Python.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее