在 Python 中執行字串壓縮的程式
假設我們有一個字串 s。我們必須將其壓縮為遊程編碼形式。因此,當某個字元連續重複 k 次(例如此處“bbbb”中的字母“b”連續重複四次)時,編碼形式將為“b4”。對於單個字元,我們不應將計數新增到其中。
所以,如果輸入類似於 s = "abbbaaaaaaccdaaab",那麼輸出將是 ab3a6c2da3b
為了解決這個問題,我們將按照以下步驟進行操作 -
- res := 空字串
- cnt := 1
- 對於範圍 1 到 s - 1 中的 i,執行
- 如果 s[i - 1] 與 s[i] 相同,則
- cnt := cnt + 1
- 否則,
- res := res 連線 s[i - 1]
- 如果 cnt > 1,則
- res := res 連線 cnt
- cnt := 1
- 如果 s[i - 1] 與 s[i] 相同,則
- res := res + s 的最後一個字元
- 如果 cnt > 1,則
- res := res 連線 cnt
- 返回 res
示例
讓我們看看以下實現以獲得更好的理解 -
def solve(s): res = "" cnt = 1 for i in range(1, len(s)): if s[i - 1] == s[i]: cnt += 1 else: res = res + s[i - 1] if cnt > 1: res += str(cnt) cnt = 1 res = res + s[-1] if cnt > 1: res += str(cnt) return res s = "abbbaaaaaaccdaaab" print(solve(s))
輸入
"abbbaaaaaaccdaaab"
輸出
ab3a6c2da3b
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP