網路查到的演算步驟如下~
步驟一
使用資料源的輸入符號集合A中的所有符號字元來建立一本初始的字典,其中每一個符號
被當成字典中的一個字。
步驟二
找出目前待編碼資料中和字典的字相同(相匹配)之最長子序列(符號串)。將此匹配子序
列編碼,送出一個欄位的編碼結果[index],其中index:最長匹配子序列在字典中的索
引位置。此匹配子序列與其後的一個符號連結成一個新子序列,將此新序列加入字典中
成為一個新字。
步驟三
重複步驟二直到待編碼資料都處理完畢才停止。
我按照上面方法要求【xyx xyx xyx】的LZW編碼如下圖
http://i.imgur.com/NAhePO7.jpg
但這題的答案是1213434,說明如下~
先作成初始字典:1=x,2=y,3= (空格)
將xyx編碼成121,接著再加上空格,成為1213,因為有了空格,我們知道前面的字串
已形成一個單字,故將xyz加到字典內,即4=xyz,故其編碼為~1213434
請問~我的作法是不是有問題呢?謝謝