重複の可能性:
LuaでのLZW圧縮
これは、LZW圧縮方式を使用してLuaでデータを圧縮するための私のコードです。私の問題は、関数が完全に圧縮された文字列'TOBEORNOTTOBEORNOT'を返すのではなく、文字'T'を返すことです。ありがとう!
function compress(uncompressed)
local dict_size = 256
local dictionary = {}
w = ""
result = {}
for i = 1, #uncompressed do
local c = string.sub(uncompressed, i, i)
local wc = w .. c
if dictionary[wc] == true then
w = wc
else
dictionary[w] = ""
dictionary[wc] = dict_size
dict_size = dict_size + 1
w = c
end
if w then
dictionary[w] = ""
end
return w
end
end
compressed = compress('TOBEORNOTTOBEORTOBEORNOT')
print(compressed)