英大文字だけからなる文字列 S が与えられます。S をランレングス圧縮してください。ランレングス圧縮とは、同じ文字が連続する部分を「文字+連続した個数」で表す方法です。
例えば AAABBC は、A が 3 個、B が 2 個、C が 1 個続くので A3B2C1 と表します。
入力は以下の形式で標準入力から与えられます。
S
ランレングス圧縮した文字列を 1 行に出力してください。各かたまりについて「文字」「連続する個数(10 進数)」をこの順に、区切りなしで続けて書きます。
| 入力 | 出力 |
|---|---|
AAABBC | A3B2C1 |
ABCDE | A1B1C1D1E1 |
「同じものがいくつ続くか」を数えながら進む、データ処理の基礎が詰まった問題です。FE(基本情報)の過去問にも登場するテーマです。
ポイントは「次に進む位置を、数えた個数のぶんだけ飛ばす」こと。1 文字ずつ戻ってしまうと二重に数えてしまいます。連続のかたまり(ラン)ごとにまとめて処理する感覚をつかみましょう。これができると、データ圧縮の考え方の入り口に立てます。
下のエディタにコードを書き、「コンパイル・実行」で試し、「提出」で全テスト採点します。言語は C / C++ / Java から選べます。全テスト合格でこの問題はクリア(👑)です。
本番の編集・コンパイル・実行・採点は Exercode 上で行います。このページは予習・練習用です(実行は Wandbox の実コンパイラを利用)。