50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
# Run-Length Encoding
|
|
|
|
Welcome to Run-Length Encoding on Exercism's Elixir Track.
|
|
If you need help running the tests or submitting your code, check out `HELP.md`.
|
|
|
|
## Instructions
|
|
|
|
Implement run-length encoding and decoding.
|
|
|
|
Run-length encoding (RLE) is a simple form of data compression, where runs (consecutive data elements) are replaced by just one data value and count.
|
|
|
|
For example we can represent the original 53 characters with only 13.
|
|
|
|
```text
|
|
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB" -> "12WB12W3B24WB"
|
|
```
|
|
|
|
RLE allows the original data to be perfectly reconstructed from the compressed data, which makes it a lossless data compression.
|
|
|
|
```text
|
|
"AABCCCDEEEE" -> "2AB3CD4E" -> "AABCCCDEEEE"
|
|
```
|
|
|
|
For simplicity, you can assume that the unencoded string will only contain the letters A through Z (either lower or upper case) and whitespace.
|
|
This way data to be encoded will never contain any numbers and numbers inside data to be decoded always represent the count for the following character.
|
|
|
|
## Source
|
|
|
|
### Created by
|
|
|
|
- @Teapane
|
|
|
|
### Contributed to by
|
|
|
|
- @angelikatyborska
|
|
- @CoderDennis
|
|
- @Cohen-Carlisle
|
|
- @dalexj
|
|
- @daveyarwood
|
|
- @devonestes
|
|
- @lex57ukr
|
|
- @lpil
|
|
- @neenjaw
|
|
- @parkerl
|
|
- @sotojuan
|
|
- @waiting-for-dev
|
|
|
|
### Based on
|
|
|
|
Wikipedia - https://en.wikipedia.org/wiki/Run-length_encoding |