Sorozat

Sorozat

Közepes

Utasítások

Adott egy számjegyekből álló string. Add vissza a benne előforduló összes n hosszúságú, összefüggő részstringet abban a sorrendben, ahogy megjelennek.

Például a „49142” stringnek a következő háromjegyű sorozatai vannak:

  • „491”
  • „914”
  • „142”

És a következő négyjegyű sorozatai:

  • „4914”
  • „9142”

Ha pedig egy ötjegyű stringből hatjegyű sorozatot kérsz, azt kapod, amit érdemelsz.

Vedd figyelembe, hogy ezeknek a sorozatoknak csak szomszédos pozíciókat kell elfoglalniuk a bemenetben; a számjegyeknek nem kell számszerűen egymást követőnek lenniük.

Tippek

A feladat megoldásához implementálnod kell a slices függvényt, amely egy szöveget vesz át, és visszaadja a megadott hosszúságú számjegyrészsorozatokat:

Ha most oldod meg először ezt a feladatot, érdemes a megadott szignatúrához ragaszkodnod:

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

Később jó ötlet lehet visszatérni ehhez a feladathoz, és más adattípusokkal meg könyvtárakkal kísérletezni:

  • ByteString, a bytestring csomagból.
  • Sequence, a containers csomagból.
  • Text, a text csomagból.
  • Vector, a vector csomagból.

A teszteket szándékosan úgy tervezték, hogy szinte bármilyen értelmes típusszignatúrát elfogadjanak, ezért bátran keresd meg azt, amelyiket te tartod a legjobbnak.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Haskell Exercism

Készen állsz elkezdeni a(z) Sorozat feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Haskell nyelvet 107 feladat segítségével, valódi emberi mentorálással, mindez ingyen.