在Python中执行字符串压缩的程序

在Python中执行字符串压缩的程序

假设我们有一个字符串s。 我们必须将此字符串压缩为Run length编码格式。 因此,当一个字符连续重复k次时,如此处的“bbbb”,字母“b”被连续重复四次,因此编码形式将为“b4”。 对于单个字符,我们不应将计数添加到其中。

因此,如果输入是s =“abbbaaaaaaccdaaab”,那么输出将是ab3a6c2da3b。

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

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程