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.
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.
Vamos a ver un ejemplo con la entrada "63915".
3, habrá tres series posibles:
"639""391""915""639" es 162 (6 × 3 × 9 = 162)"391" es 27 (3 × 9 × 1 = 27)"915" es 45 (9 × 1 × 5 = 45)"63915" proviene de la serie "639".
Por lo tanto, la respuesta es 162.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")
Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.