用 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 次浏览

启动您的 职业

完成课程获得认证

开始
广告
© . All rights reserved.