用 Python 將普通形式的字串編碼成其遊程長度形式的程式


假設我們有一個字串 s,我們必須使用遊程長度編碼技術對它進行編碼。我們知道,遊程長度編碼是一種快速而簡單的字串編碼方法。思路如下——將重複出現的連續元素(字元)用一個計數和一個字元表示。

因此,如果輸入為 s = “BBBBAAADDCBB”,那麼輸出將為 “4B3A2D1C2B”

為了解決這個問題,我們將按以下步驟操作——

  • res := 空字串
  • tmp := s 的第一個字元
  • count := 1
  • 對於 i 從 1 到 s 的大小,迴圈執行
    • 如果 s[i] 與 tmp 不同,則
      • res := res 拼接 count 拼接 tmp
      • tmp := s[i]
      • count := 1
    • 否則,
      • count := count + 1
  • 返回 res 拼接 count 拼接 tmp

讓我們看下面的實現以加深理解——

示例

 線上演示

class Solution:
   def solve(self, s):
      res = ""
      tmp = s[0]
      count = 1
      for i in range(1,len(s)):
         if s[i] != tmp:
            res += str(count) + tmp
            tmp = s[i]
            count = 1
         else:
            count += 1
      return res + str(count) + tmp
ob = Solution() print(ob.solve("BBBBAAADDCBB"))

輸入

"BBBBAAADDCBB"

輸出

4B3A2D1C2B

更新於:05-10-2020

357 次瀏覽

啟動您的 職業

完成課程獲得認證

開始
廣告