用 Python 执行字符串压缩的程序

pythonserver side programmingprogramming更新于 2025/12/23 7:08:17

假设我们有一个字符串 s。我们必须将此字符串压缩为运行长度编码形式。因此,当一个字符连续重复 k 次(如 'bbbb')时,字母 'b' 连续重复四次,因此编码形式将为 'b4'。对于单个字符,我们不会将计数添加到其中。

因此,如果输入为 s = "abbbaaaaaaccdaaab",则输出为 ab3a6c2da3b

要解决这个问题,我们将遵循以下步骤 −

  • res := 空字符串
  • cnt := 1
  • 对于 i 在 1 到 s - 1 的大小范围内,执行
    • 如果 s[i - 1] 与 s[i] 相同,则
      • cnt := cnt + 1
    • 否则,
      • res := res 连接 s[i - 1]
      • 如果 cnt > 1,然后
        • res := res 连接 cnt
      • cnt := 1
  • 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

相关文章


有用资源