How to resolve the algorithm Run-length encoding step by step in the Arturo programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Run-length encoding step by step in the Arturo programming language

Table of Contents

Problem Statement

Given a string containing uppercase characters (A-Z), compress repeated 'runs' of the same character by storing the length of that run, and provide a function to reverse the compression. The output can be anything, as long as you can recreate the input with it.

Note: the encoding step in the above example is the same as a step of the Look-and-say sequence.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Run-length encoding step by step in the Arturo programming language

Source code in the arturo programming language

runlengthEncode: function [s][
    join map chunk split s => [&] 'x ->
        (to :string size x) ++ first x
]

runlengthDecode: function [s][
    result: new ""
    loop (chunk split s 'x -> positive? size match x {/\d+/}) [a,b] ->
        'result ++ repeat first b to :integer join to [:string] a
    return result
]

str: "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"

encoded: runlengthEncode str
print ["encoded:" encoded]

decoded: runlengthDecode encoded
print ["decoded:" decoded]

if decoded=str -> print "\nSuccess!"


  

You may also check:How to resolve the algorithm Archimedean spiral step by step in the FutureBasic programming language
You may also check:How to resolve the algorithm Substring step by step in the D programming language
You may also check:How to resolve the algorithm Sorting algorithms/Bead sort step by step in the Eiffel programming language
You may also check:How to resolve the algorithm Simulate input/Keyboard step by step in the PureBasic programming language
You may also check:How to resolve the algorithm Bioinformatics/Global alignment step by step in the Python programming language