Cody

Problem 185. Data decompression

A chunk of data is to be 'decompressed'.

Input:

  • compressed: a row vector of uint8 values. This is the compressed data.
  • table: a cell-array of strings. Each string contains only '1's and '0's and represents a binary code.
  • alphabet: a string containing all possible symbols that may occur in the decompressed data. The symbol at alphabet(x) is encoded with the code at table{x}.

Output:

  • decompressed: a string with the decoded message.

Example:

compressed=[93,85,127]
table={'1','010'}
alphabet='al'
==>  decompressed = 'laaalalalaaaaaaa'

because:

[93,85,127] = '01011101 01010101 01111111' in binary
decoded from left to right:
'010 1 1 1 010 1 010 1 010 1 1 1 1 1 1 1'
= l  a a a  l  a  l  a  l  a a a a a a a

Remarks: The message is such that always exactly all bits of compressed are used. The solution is unique (see prefix-free code).

Solution Stats

71.93% Correct | 28.07% Incorrect
Last solution submitted on Jun 27, 2018

Problem Comments

Recent Solvers16

Suggested Problems

More from this Author7