12 lines
262 B
Text
12 lines
262 B
Text
func encode(str) {
|
|
str.gsub(/(.)(\1{0,254})/, {|a,b| b.len+1 -> chr + a});
|
|
}
|
|
|
|
func decode(str) {
|
|
var chars = str.chars;
|
|
var r = '';
|
|
(chars.len/2 -> int).range.each { |i|
|
|
r += (chars[2*i + 1] * chars[2*i].ord);
|
|
}
|
|
return r;
|
|
}
|