私の質問は、処理中に情報が失われた可能性がある場合、元の文字列を取り出す方法についてです。 私はこのようなもので、バイトのシフトを使用してエンコードのルーチン見直している:右、私は、特定の場合に情報を失うんだけど、私は方法を把握しようとしているシフトされた場合は1ビットでバイトシフトでエンコードを解読する最良の方法
def encode(string):
encoded = ''
for char in string:
encoded += chr(ord(char)^(ord(char) >> 1))
return encoded
を
In [90]: ord('A') >> 1 << 1
Out[90]: 64
In [91]: ord('B') >> 1 << 1
Out[91]: 66
In [92]: ord('C') >> 1 << 1
Out[92]: 66
はそれが可能トンのようになります。私は与えられた文字のリストについては、情報を失うことだと
def decode(string):
decoded = ''
for char in string:
decoded += ........
return decoded
ような方法で、元の文字列を再構成しますコード化された文字列を逆にする?私はしばらくの間、私の頭を悩まされています。私はこれを行うことができるという感覚を持っていますが、私の脳はここにこだわっているようです。
@StefanPochmann私はアプローチを使って答えを更新しました –
ニース。私は同じ方法を考え出しましたが、あなたの推論ははるかに優れています。私は、この方法がシングル・チャル・デコードのためにできる最善の策であると考えています。エンコーディングよりもはるかに面倒です。私はそれを修復するよりも何かを壊す方が簡単だと思います:-)。長い文字列の場合は、ちょうど私が投稿したようなルックアップテーブルを使うほうがよいと思います。 –