Длина последовательности
Вы решили задачу. Теперь можно сравнить подходы.
Считаем ненулевые элементы, прекращая ввод на первом нуле.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Один проход без хранения последовательности
Для длины не требуется хранить сами значения.
count = 0
while int(input()) != 0:
count += 1
print(count)
Время: O(n). Память: O(1) числовых переменных.
Другой способ: Сохранение и обработка списка
Список заканчивается перед первым нулём, поэтому его длина равна ответу.
a = []
while True:
x = int(input())
if x == 0:
break
a.append(x)
print(len(a))
Время: O(n). Память: O(n) для сохранённой последовательности.
На что обратить внимание
- Первый ноль не входит в последовательность.
- Не нужно читать или учитывать строки после первого нуля.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.