func encode(str) { str.gsub(/((.)(\2*))/, {|a,b| "#{a.len}#{b}" }); } func decode(str) { str.gsub(/(\d+)(.)/, {|a,b| b * a.to_i }); }