のような文字列を縮小したい -1234B56789C;ABC1D3E/FGH4IJKL
約20〜25文字の大文字と小文字を区別しない文字です。
私の目標は、最大の英数字の文字列を持つことです 16
文字。それらは人間が読めるままでなければなりません。
それは可能ですか?いくつかの特殊文字も含む英数字文字列を圧縮するために使用できるアルゴリズムはありますか?
圧縮を元に戻すことも可能でなければなりません。
回答:
回答№1は2一般的には、別のターゲットアルファベットを使用しない限り不可能だと思います。
私が現在理解している限り、 source alphabet
0〜9およびA〜Zです。
延長する場合 target alphabet
特定のN> 0の他の文字も含めるには、
その後、元々持っていたより少ない文字で入力文字列をエンコードできます
(例えば、ソースアルファベットからいくつかの文字をエンコードすることができるため
ターゲットアルファベットからの単一の文字)。
回答№2については2
LZWのようなアプローチを試みて、入力の一般的なパターンを探すことができます。たとえば、文字列に「1234」が頻繁に出現する場合、「Q」としてエンコードできます。
このアプローチでは、常にあなたを達成することはできません選択した圧縮マッピングが常に16文字の長さを達成するのに十分な規則性でソースで発生することを証明できない限り、16文字のエンコード文字列の要件。