# 4d47's solution

## to Series in the Clojure Track

Published at Jul 13 2018 · 0 comments
Instructions
Test suite
Solution

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

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.

## 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.

### series_test.clj

``````(ns series-test
(:require [clojure.test :refer [deftest is testing]]
[series :refer [slices]]))

(deftest empty-string
(testing "empty string with any number"
(is (= [] (slices "" 1)))))

(deftest number-eq-zero
(testing "number = 0"
(is (= [""] (slices "123" 0)))))

(deftest number>string
(testing "number > string-length"
(is (= [] (slices "123" 1000)))))

(deftest number=string
(testing "number = string-length"
(is (= ["123"] (slices "123" 3)))))

(deftest number<string
(testing "number < string-length"
(is (= #{"123" "234" "345"} (set (slices "12345" 3))))))``````
``````(ns series
(:require [clojure.string :refer [join]]))

(defn slices [s len]
(if (zero? len)
[""]
(map join (partition len 1 s))))``````