Series

Series

Media

Instrucciones

Dado un string de dígitos, devuelve todas las subcadenas contiguas de longitud n de ese string en el orden en que aparecen.

Por ejemplo, el string «49142» tiene las siguientes series de 3 dígitos:

  • «491»
  • «914»
  • «142»

Y las siguientes series de 4 dígitos:

  • «4914»
  • «9142»

Y si pides una serie de 6 dígitos a partir de un string de 5 dígitos, te mereces lo que te salga.

Ten en cuenta que estas series solo tienen que ocupar posiciones adyacentes en la entrada; los dígitos no tienen por qué ser numéricamente consecutivos.

Pistas

Para completar este ejercicio tienes que implementar la función slices, que recibe un texto y devuelve las subsecuencias de dígitos con un tamaño especificado:

Si es la primera vez que resuelves este ejercicio, se recomienda que te ciñas a la firma proporcionada:

slices :: Int -> String -> [[Int]]

Más adelante, puede ser buena idea volver sobre este problema y jugar con otros tipos de datos y bibliotecas:

  • ByteString, del paquete bytestring.
  • Sequence, del paquete containers.
  • Text, del paquete text.
  • Vector, del paquete vector.

El conjunto de pruebas se diseñó intencionadamente para aceptar casi cualquier firma de tipo que tenga sentido, así que te animamos a que encuentres la que creas que es la mejor.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Haskell Exercism

¿Listo para empezar Series?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.