Sha256: 33d926041f705cd843ef439b2c7419d8f091dd62f46b7fd87284452ac2aa6199

Contents?: true

Size: 398 Bytes

Versions: 90

Compression:

Stored size: 398 Bytes

Contents

defmodule RunLengthEncoder do

  @spec encode(String.t) :: String.t
  def encode(string) do
    Regex.scan(~r/([A-Z])\1*/, string)
    |> Enum.map_join(fn([run, c]) -> "#{String.length(run)}#{c}" end)
  end

  @spec decode(String.t) :: String.t
  def decode(string) do
    Regex.scan(~r/(\d+)(.)/, string)
    |> Enum.map_join(fn [_,n,c] -> String.duplicate(c, String.to_integer(n)) end)
  end
end

Version data entries

90 entries across 90 versions & 1 rubygems

Version Path
trackler-2.0.6.34 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.33 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.32 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.31 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.30 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.29 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.28 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.27 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.26 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.25 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.24 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.23 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.22 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.21 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.20 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.19 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.18 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.17 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.16 tracks/elixir/exercises/run-length-encoding/example.exs
trackler-2.0.6.15 tracks/elixir/exercises/run-length-encoding/example.exs