1

Swift で Unicode 文字列を圧縮するアルゴリズムを探しています。圧縮する文字列は比較的小さくなります (160 文字以下)。

LZW 圧縮が既に実装されていることがわかりましたここ。ASCII 文字でうまく機能するコードをコピーして貼り付けましたが、いくつかの Unicode 文字を追加するとすぐにfatal error: unexpectedly found nil while unwrapping an Optional value圧縮に時間がresult.append(dict[w]!)かかりdict[c]ましcた。

Unicode 文字をサポートするためにそのアルゴリズムを微調整するにはどうすればよいですか、それとも他の圧縮方法を試す必要がありますか? もしそうなら、どれですか?

編集

冒頭のループを変更することで

for i in 0 ..< 256
{
    let s = String(UnicodeScalar(i))
    dict[s] = i
}

for i in 0 ..< 0xFFFF
{
    let s = String(UnicodeScalar(i))
    dict[s] = i
}

アルゴリズムを機能させることはできますが、そのソリューションには計算時間とメモリが多すぎます。

4

0 に答える 0