Suppose you have an array of values in your Swift app and you need to compress it to a smaller size, with the intention of making it occupy less memory. If the array contains many consecutive repeated values it could be compressed by only including a repeated value once, and tracking the number of consecutive occurrences for that value.
How might that code work? What about the code to decompress an array, how can that be implemented in Swift?
If you are interested in figuring this out yourself, I posted a gist that you can use as a starting point to test your code:
My solution is shown below. It uses some slick Swift goodness, such as a where clause, the flatMap method, and tuple decomposition.
The full source code is available, as a playground, here: