Menu
CoddyTech

String Compression

你会得到一个由英文字母组成的字符串 s。对它进行压缩:将每段连续出现两次或更多次的相同字母替换为该字母后接这段重复的长度,并保留单独出现的字母不变。例如,aabccc 会变成 a2bc3。返回压缩后的字符串。

大写和小写字母是不同的字母:aA 是两段长度为 1 的连续字母。

函数

compress(s: string) → string
sstring
要压缩的字符串,只包含英文字母
返回值string
压缩后的字符串,当长度大于 1 时,将每段连续字符写成该字符加上其长度

约束条件

  • 1 ≤ s.length ≤ 2 × 104
  • s 只包含英文字母,即 a 到 z 和 A 到 Z。
  • 游程长度以十进制表示,可以有多位数字。

示例

输入
s = "aabccc"
输出
"a2bc3"
解释
连续相同字符分别是 aa、b 和 ccc。它们会变成 a2、b(单个字母不加计数)和 c3。
challenge icon

进阶

反过来写:给定一个压缩字符串,例如 ab12,还原原始字符串。如何读取由多位数字组成的计数?

重置代码
def compress(s):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

s = "aabccc"

预期输出

"a2bc3"