Problem 10
(Easy 🌟) Use the result of Problem 9 to implement the so-called run-length encoding data compression method. Consecutive duplicates of elements are encoded as lists (N, E)
where N
is the number of duplicates of the element E
.
variable {α : Type} [BEq α] [Inhabited α]
def pack (l : List α) : List (List α) :=
sorry
def encode (l : List α) : List (Nat × α) :=
sorry
-- The following codes are for test and you should not edit these.
example : encode [1, 1, 2, 2, 2, 3, 4, 4, 4, 4] = [(2, 1), (3, 2), (1, 3), (4, 4)] := rfl
example : encode ['a', 'a', 'b', 'c', 'c'] = [(2, 'a'), (1, 'b'), (2, 'c')] := rfl
example : encode [1, 1] = [(2, 1)] := rfl
example : encode ([] : List α) = [] := rfl