游程編碼

游程編碼

困難

說明

實作執行長度編碼與解碼。

執行長度編碼(RLE)是一種簡單的資料壓縮方式,它會把連續的資料元素(也就是 run)替換成單一的資料值和出現次數。

例如,我們可以把原本的 53 個字元只用 13 個字元來表示。

"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"  ->  "12WB12W3B24WB"

RLE 能讓原始資料從壓縮後的資料完美重建,這使它成為一種無損資料壓縮。

"AABCCCDEEEE"  ->  "2AB3CD4E"  ->  "AABCCCDEEEE"

為了簡化起見,你可以假設未編碼的字串只會包含 A 到 Z 的字母(大小寫皆可)以及空白字元。 這樣一來,要編碼的資料就永遠不會包含數字,而要解碼的資料裡出現的數字,則一律代表後續字元的出現次數。

Track 專屬說明

輸入字串的緩衝區使用線性記憶體的第 64 到 319 個位元組。

輸入字串可以視需要就地修改。


出處

Wikipedia連結會在新視窗或分頁中開啟
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
WebAssembly Exercism

準備好開始 游程編碼 了嗎?

註冊 Exercism,透過 87 個練習 和真人引導來學習並精通 WebAssembly,全部免費。