31 lines
704 B
Plaintext
31 lines
704 B
Plaintext
function encode(sequence s)
|
|
sequence out = {}
|
|
integer prev_char,count = 1
|
|
if length(s) then
|
|
prev_char = s[1]
|
|
for i=2 to length(s) do
|
|
if s[i]!=prev_char then
|
|
out &= {count,prev_char}
|
|
prev_char = s[i]
|
|
count = 1
|
|
else
|
|
count += 1
|
|
end if
|
|
end for
|
|
out &= {count,prev_char}
|
|
end if
|
|
return out
|
|
end function
|
|
|
|
function decode(sequence s)
|
|
sequence out = {}
|
|
for i=1 to length(s) by 2 do
|
|
out &= repeat(s[i+1],s[i])
|
|
end for
|
|
return out
|
|
end function
|
|
|
|
sequence s = encode("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW")
|
|
pp(s)
|
|
?decode(s)
|