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