From 49562208f5943f6f5328d72809464d9707dcd698 Mon Sep 17 00:00:00 2001 From: "exercism-solutions-syncer[bot]" <211797793+exercism-solutions-syncer[bot]@users.noreply.github.com> Date: Thu, 7 Aug 2025 09:08:25 +0000 Subject: [PATCH] [Sync Iteration] elixir/series/3 --- .../elixir/series/3/lib/string_series.ex | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 solutions/elixir/series/3/lib/string_series.ex diff --git a/solutions/elixir/series/3/lib/string_series.ex b/solutions/elixir/series/3/lib/string_series.ex new file mode 100644 index 0000000..681819b --- /dev/null +++ b/solutions/elixir/series/3/lib/string_series.ex @@ -0,0 +1,19 @@ +defmodule StringSeries do + @doc """ + Given a string `s` and a positive integer `size`, return all substrings + of that size. If `size` is greater than the length of `s`, or less than 1, + return an empty list. + """ + @spec slices(s :: String.t(), size :: integer) :: list(String.t()) + def slices(_, size) when size < 1, do: [] + def slices(s, size) do + length = String.length(s) + if size > length do + [] + else + for position <- Range.new(0, length - size) do + String.slice(s, position, size) + end + end + end +end