ランレングス圧縮は、可逆性の圧縮アルゴリズムです。
具体的な圧縮方法は、ある文字が連続して何回出ているか、を記録していく方法です。
例を挙げると、「abbccc」という文字列があった場合、「a1b2c3」というように、文字+連続した回数を繰り返すことで文字列を圧縮します。
欠点として、この方法では文字の連続が少ない場合、例えば「abcdefg」を圧縮対象とすると、結果として「a1b1c1d1e1f1g1」となってしまい、元のデータよりもサイズが大きくなってしまいます。
import sys s = input() if len(s) == 0: sys.exit() now = s[0] cnt = 1 ans = '' for i in range(1, len(s)): if now != s[i]: ans += now + str(cnt) cnt = 1 now = s[i] continue cnt += 1 ans += now + str(cnt) print(ans)