🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io 🎉 # SergiiVlasiuk's solution

## to Series in the Scala Track

Published at Aug 26 2019 · 0 comments
Instructions
Test suite
Solution

Given a string of digits, output all the contiguous substrings of length `n` in that string.

For example, the string "49142" has the following 3-digit series:

• 491
• 914
• 142

And the following 4-digit series:

• 4914
• 9142

And if you ask for a 6-digit series from a 5-digit string, you deserve whatever you get.

Note that these series are only required to occupy adjacent positions in the input; the digits need not be numerically consecutive.

The Scala exercises assume an SBT project scheme. The exercise solution source should be placed within the exercise directory/src/main/scala. The exercise unit tests can be found within the exercise directory/src/test/scala.

To run the tests simply run the command `sbt test` in the exercise directory.

For more detailed info about the Scala track see the help page.

## Source

A subset of the Problem 8 at Project Euler http://projecteuler.net/problem=8

## Submitting Incomplete Solutions

It's possible to submit an incomplete solution so you can see how others have completed the exercise.

### SeriesTest.scala

``````import org.scalatest.{Matchers, FunSuite}

/** @version created manually **/
class SeriesTest extends FunSuite with Matchers {

test("slices of one") {
Series.slices(1, "") should be (List())
Series.slices(1, "01234") should be (List(List(0), List(1), List(2),
List(3), List(4)))
}

test("slices of two") {
pending
Series.slices(2, "") should be (List())
Series.slices(2, "01") should be (List(List(0, 1)))
Series.slices(2, "01234") should be (List(List(0, 1), List(1, 2), List(2, 3),
List(3, 4)))
}

test("slices of three") {
pending
Series.slices(3, "") should be (List())
Series.slices(3, "012") should be (List(List(0, 1, 2)))
Series.slices(3, "01234") should be (List(List(0, 1, 2), List(1, 2, 3),
List(2, 3, 4)))
}
}``````
``````object Series {
def slices(count: Int, number: String) = number map (_.asDigit) sliding (count) toList
}``````