本题是经典的字符串压缩(游程编码 Run-Length Encoding),可用**双指针(滑动窗口)**在单次扫描内完成。
核心思路:字符串中相同字符总是连续成段。用两个指针刻画每一段:
i 指向「当前连续段的起点」;j 从 i 开始向后扩张,直到遇到与 s[i] 不同的字符,此时 [i, j) 就是一段全相同的字符。段长为 cnt = j - i,按规则输出:
给定一个只包含大小写英文字母的字符串,请实现字符串压缩编码功能。
压缩规则:
1,则用字符加上出现次数表示1,则直接输出字符输出压缩后的字符串
输入
aabcccccaaa
输出
a2bc5a3
说明
aa → a2b → b(单个字符不写数字)ccccc → c5aaa → a3输入
b
输出
b
说明
输入
AAbB
输出
A2bB
说明
AA → A2b → bB → B输入
aaabbbcccaaa
输出
a3b3c3a3
说明
aaa → a3bbb → b3ccc → c3aaa → a3
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册