在 Python 中执行字符串压缩的程序
假设我们有一个字符串 s。我们必须将其压缩为游程编码形式。因此,当某个字符连续重复 k 次(例如此处“bbbb”中的字母“b”连续重复四次)时,编码形式将为“b4”。对于单个字符,我们不应将计数添加到其中。
所以,如果输入类似于 s = "abbbaaaaaaccdaaab",那么输出将是 ab3a6c2da3b
为了解决这个问题,我们将按照以下步骤进行操作 -
- res := 空字符串
- cnt := 1
- 对于范围 1 到 s - 1 中的 i,执行
- 如果 s[i - 1] 与 s[i] 相同,则
- cnt := cnt + 1
- 否则,
- res := res 连接 s[i - 1]
- 如果 cnt > 1,则
- res := res 连接 cnt
- cnt := 1
- 如果 s[i - 1] 与 s[i] 相同,则
- 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP