RosettaCodeData/Task/Run-length-encoding/Ruby/run-length-encoding-2.rb

16 lines
264 B
Ruby

def encode(string)
encoding = []
for char, repeat in string.scan(/(.)(\1*)/)
encoding << [char, 1 + repeat.length]
end
encoding
end
def decode(encoding)
decoding = ""
for char, length in encoding
decoding << char * length
end
decoding
end