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

30.05% Correct | 69.95% Incorrect
Last Solution submitted on Apr 28, 2024

Problem Comments

Solution Comments

Show comments

Problem Recent Solvers80

Suggested Problems

More from this Author7

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!