Séries

Séries

Moyen

Instructions

Étant donné une string de chiffres, renvoie toutes les sous-chaînes contiguës de longueur n de cette string, dans l'ordre où elles apparaissent.

Par exemple, la string « 49142 » contient les séries de 3 chiffres suivantes :

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

Et les séries de 4 chiffres suivantes :

  • « 4914 »
  • « 9142 »

Et si tu demandes une série de 6 chiffres à partir d'une string de 5 chiffres, tant pis pour toi.

Note que ces séries doivent seulement occuper des positions adjacentes dans l'entrée ; les chiffres n'ont pas besoin d'être consécutifs au niveau numérique.

Astuces

Pour réaliser cet exercice, tu dois implémenter la fonction slices, qui prend un texte et renvoie les sous-séquences de chiffres d'une taille donnée :

Si c'est la première fois que tu résous cet exercice, il est recommandé de t'en tenir à la signature fournie :

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

Plus tard, tu peux envisager de revenir sur ce problème et de jouer avec d'autres types de données et bibliothèques :

  • ByteString, du paquet bytestring.
  • Sequence, du paquet containers.
  • Text, du paquet text.
  • Vector, du paquet vector.

La suite de tests a été délibérément conçue pour accepter presque n'importe quelle signature de type qui a du sens, alors on t'encourage à trouver celle qui te semble la meilleure.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Haskell Exercism

Prêt à commencer Séries ?

Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.