在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
- 如果s [i-1]与s [i]相同,则
- 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