Ruby で文字列をエンコードして、出力をペアにしてデコードできるようにしたいと考えています。各ペアに文字列内の次の個別の文字と、連続する繰り返し数が含まれるようにエンコードしたいと考えています。
たとえば、「aaabbcbbaaa」をエンコードすると、出力は [["a", 3], ["b", 2], ["c", 1], ["b", 2], ["a", 3]] になります。
これがコードです。
def encode( s )
b = 0
e = s.length - 1
ret = []
while ( s <= e )
m = s.match( /(\w)\1*/ )
l = m[0][0]
n = m[0].length
ret << [l, n]
end
ret
end