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

10 lines
216 B
Ruby
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
def encode(string)
2015-11-18 06:14:39 +00:00
string.scan(/(.)(\1*)/).collect do |char, repeat|
[1 + repeat.length, char]
end.join
2013-04-10 23:57:08 -07:00
end
2013-10-27 22:24:23 +00:00
def decode(string)
2015-11-18 06:14:39 +00:00
string.scan(/(\d+)(\D)/).collect {|length, char| char * length.to_i}.join
2013-04-10 23:57:08 -07:00
end