ランレングス圧縮

ランレングス圧縮は、可逆性の圧縮アルゴリズムです。
具体的な圧縮方法は、ある文字が連続して何回出ているか、を記録していく方法です。
例を挙げると、「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)