Tracks
/
Python
Python
/
Ejercicios
/
Mayor producto de serie
Mayor producto de serie

Mayor producto de serie

Intermedia

Introducción

Trabajas para una agencia gubernamental que ha interceptado una serie de señales de comunicación cifradas de un grupo de ladrones de bancos. Las señales contienen una larga secuencia de dígitos. Tu equipo necesita usar diversas técnicas de procesamiento digital de señales para analizar las señales e identificar cualquier patrón que pueda indicar la planificación de un atraco.

Instrucciones

Tu tarea es buscar patrones en la larga secuencia de dígitos de la señal cifrada.

La técnica que vas a usar aquí se llama el producto de serie más grande.

Primero, definamos algunos términos.

  • argumento: la secuencia de dígitos que necesitas analizar
  • serie: una secuencia de dígitos adyacentes (los que están uno al lado del otro) que está contenida dentro del argumento
  • longitud de la serie: cuántos dígitos tiene cada serie
  • producto: lo que obtienes cuando multiplicas números entre sí

Veamos un ejemplo con el argumento "63915".

  • Para formar una serie, toma dígitos adyacentes del argumento original.
  • Si trabajas con una longitud de 3, habrá tres series posibles:
    • "639"
    • "391"
    • "915"
  • Después necesitamos calcular el producto de cada serie:
    • El producto de la serie "639" es 162 (6 × 3 × 9 = 162)
    • El producto de la serie "391" es 27 (3 × 9 × 1 = 27)
    • El producto de la serie "915" es 45 (9 × 1 × 5 = 45)
  • 162 es mayor que 27 y que 45, así que el producto de serie más grande de "63915" proviene de la serie "639". Entonces la respuesta es 162.

Mensajes de excepción

A veces es necesario lanzar una excepción. Cuando lo hagas, siempre debes incluir un mensaje de error significativo que indique cuál es el origen del error. Esto hace que tu código sea más legible y ayuda mucho con la depuración. Para situaciones en las que sabes que el origen del error será de un tipo determinado, puedes elegir lanzar uno de los tipos de error integrados, pero igual debes incluir un mensaje significativo.

Este ejercicio en particular requiere que uses la sentencia raise para «lanzar» un ValueError cuando tu función largest_product() reciba una entrada no válida. Las pruebas solo pasarán si lanzas la exception con raise e incluyes un mensaje con ella. ¡Puedes reutilizar sin problema el código que escribiste en el ejercicio series!

Para lanzar un ValueError con un mensaje, escribe el mensaje como argumento del tipo de exception:

# span of numbers is longer than number series
raise ValueError("span must not exceed string length")

# span of number is negative
raise ValueError("span must not be negative")

# series includes non-number input
raise ValueError("digits input must only contain digits")
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Python Exercism

¿Todo listo para empezar Mayor producto de serie?

Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.