3

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
4

4 に答える 4