Rutas
/
Python
Python
/
Ejercicios
/
Mayor producto de una serie
Mayor producto de una serie

Mayor producto de una serie

Media

Introducción

Trabajas para una agencia gubernamental que ha interceptado una serie de señales de comunicación cifradas de un grupo de atracadores de bancos. Las señales contienen una larga secuencia de dígitos. Tu equipo tiene que usar diversas técnicas de procesamiento digital de señales para analizar las señales e identificar cualquier patrón que pueda indicar que se está planeando 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 producto de serie más grande.

Primero, vamos a definir algunos términos.

  • entrada: 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 de la entrada
  • longitud: el número de dígitos que tiene cada serie
  • producto: lo que obtienes al multiplicar números entre sí

Vamos a ver un ejemplo con la entrada "63915".

  • Para formar una serie, toma dígitos adyacentes de la entrada original.
  • Si trabajas con una longitud de 3, habrá tres series posibles:
    • "639"
    • "391"
    • "915"
  • Después tenemos que 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". Por lo tanto, la respuesta es 162.

Mensajes de excepción

A veces es necesario lanzar una excepción. Cuando lo hagas, siempre deberías 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 muchísimo a la hora de depurar. Cuando sepas que el origen del error va a ser de un tipo concreto, puedes optar por lanzar uno de los tipos de error integrados, pero aun así deberías incluir un mensaje significativo.

Este ejercicio en concreto requiere que uses la instrucción raise para «lanzar» un ValueError cuando tu función largest_product() reciba una entrada no válida. Los tests solo pasarán si usas raise con la exception y además incluyes un mensaje con ella. ¡No dudes en reutilizar tu código del ejercicio series!

# 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 pestaña nueva
Python Exercism

¿Listo para empezar Mayor producto de una serie?

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