// 題目

遊程長度編碼

Run-Length Encoding・bapcs-02-01

  • APCS 中級
  • 連續字元壓縮與分段
  • APCS 以外的進階主題・Strings & Parsing

時間限制 1 秒・記憶體 64 MB

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

題目敘述

老師在黑板上寫了一排小寫字母,想用比較短的方式記錄它:把連在一起、完全相同的字母視為一段,每一段只記下那個字母和這一段有幾個。

規則是:把字串切成若干「極大的相同字母區塊」,也就是同一個字母連續出現、且左右兩側都不是這個字母的最長一段。依序輸出每個區塊的字母,後面緊接該區塊的長度(以十進位整數表示),中間不加任何分隔符號。

輸入格式

輸入一行,為一個小寫英文字母組成的字串 s。

輸出格式

輸出一行,為編碼後的結果。

限制

  • 1 ≤ |s| ≤ 106

範例

範例 1

輸入

aaabbc

輸出

a3b2c1

範例 2

輸入

a

輸出

a1

說明

範例 1 的三個區塊是 aaa、bb、c,長度分別為 3、2、1。若同一個字母在不相鄰的位置再度出現,視為不同的區塊,各自計算。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。