🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
PythonLib
Питон для всех
На далекой планете XB-103 исследовательский робот-геолог собирает образцы минералов с конвейерной ленты. Каждый тип минерала имеет свой уникальный числовой идентификатор (ID). Система управления робота должна работать максимально эффективно, поэтому для оптимизации хранения роботу необходимо в конце смены передать в центральный компьютер только одно число: какой была максимальная длина непрерывной серии образцов одного и того же типа. Смена робота заканчивается, когда на ленту поступает специальный калибровочный образец с ID равным 0.
Вам дана последовательность числовых ID минералов. Последовательность всегда завершается числом 0, которое означает конец смены и не является ID минерала. Определите, какое наибольшее число подряд идущих одинаковых ID было в этой последовательности.
Вводятся целые натуральные числа, каждое с новой строки. Последовательность завершается числом 0.
Одно целое число — максимальная длина непрерывной последовательности одинаковых элементов.
1
7
7
7
2
2
9
0
3
# Инициализируем переменные для подсчета
# max_len - хранит максимальную найденную длину серии
# current_len - хранит длину текущей серии одинаковых чисел
# prev_n - хранит предыдущее число для сравнения с текущим
max_len = 0
current_len = 0
# Используем -1 как начальное значение, так как ID минералов - натуральные числа
prev_n = -1
# Запускаем бесконечный цикл, который прервется при вводе 0
while True:
# Считываем очередной ID и преобразуем его в целое число
n = int(input())
# Условие выхода из цикла - конец смены
if n == 0:
break
# Сравниваем текущий ID с предыдущим
if n == prev_n:
# Если они равны, увеличиваем счетчик текущей серии
current_len += 1
else:
# Если числа не равны, значит серия прервалась.
# Сначала проверяем, не была ли закончившаяся серия самой длинной
if current_len > max_len:
max_len = current_len
# Начинаем новую серию с текущего числа. Ее длина равна 1.
current_len = 1
# Обновляем "предыдущее" число
prev_n = n
# После завершения цикла нужно выполнить еще одну проверку.
# Это необходимо для случая, когда самая длинная серия оказалась в самом конце
# последовательности, прямо перед нулем.
if current_len > max_len:
max_len = current_len
# Выводим результат
print(max_len)
🎉 Поздравляем! 🎉
Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.
AD
Реклама
Запускаем ваш код...