• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 5. While cycle

Dificultad:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Tarea«Selección de raíz»

💻 Python

en el lejano planeta XB-103, un robot geólogo de investigación recolecta muestras de minerales de la cinta transportadora. Cada tipo de mineral tiene su propio identificador numérico único (ID). El sistema de control del robot debe funcionar de la manera más eficiente posible, por lo tanto, para optimizar el almacenamiento del robot, es necesario transferir solo un número a la computadora central al final del turno: cuál fue la longitud máxima de la serie continua de muestras del mismo tipo. El turno del robot termina cuando una muestra de calibración especial con ID es 0.

rn

se te da una secuencia de identificadores numéricos de minerales. La secuencia siempre termina con el número 0, que indica el final del turno y no es el ID del mineral. Determina el mayor número de IDs iguales consecutivos en esta secuencia.

Formato de entrada

Se introducen números naturales enteros, cada uno en una nueva línea. La secuencia termina con el número 0.

Formato de salida

Un número & mdash; La longitud máxima de la secuencia continua de elementos iguales.

Ejemplo

Entrada

1
7
7
7
2
2
9
0

Salida

3

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Solución del desarrollador
# Инициализируем переменные для подсчета
# 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)

🎉 ¡Felicidades! 🎉

¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.

AD

Publicidad

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.