Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
36
Task/Run-length-encoding/Seed7/run-length-encoding.seed7
Normal file
36
Task/Run-length-encoding/Seed7/run-length-encoding.seed7
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "scanstri.s7i";
|
||||
|
||||
const func string: letterRleEncode (in string: data) is func
|
||||
result
|
||||
var string: result is "";
|
||||
local
|
||||
var char: code is ' ';
|
||||
var integer: index is 1;
|
||||
begin
|
||||
if length(data) <> 0 then
|
||||
code := data[1];
|
||||
repeat
|
||||
incr(index);
|
||||
until index > length(data) or code <> data[index];
|
||||
result := str(pred(index)) & str(code) & letterRleEncode(data[index ..]);
|
||||
end if;
|
||||
end func;
|
||||
|
||||
const func string: letterRleDecode (in var string: data) is func
|
||||
result
|
||||
var string: result is "";
|
||||
local
|
||||
var integer: count is 0;
|
||||
begin
|
||||
if length(data) <> 0 then
|
||||
count := integer parse getDigits(data);
|
||||
result := data[1 len 1] mult count & letterRleDecode(data[2 ..]);
|
||||
end if;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
begin
|
||||
writeln(letterRleEncode("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"));
|
||||
writeln(letterRleDecode("12W1B12W3B24W1B14W"));
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue