题目:
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。
若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
示例:
示例1:
输入:“aabcccccaaa”
输出:“a2b1c5a3”
示例2:
输入:“abbccd”
输出:“abbccd”
解释:“abbccd"压缩后为"a1b2c2d1”,比原字符串长度更长。
思想: 类似双指针法,一前一后判断是否相等。
- 两个变量同时开始遍历数组,count初始化为1,若s[i]==s[j],则count++,j++进行计数。
- 如果s[i]!=s[j],i=j,则将s[i]和count连接为字符串,count=1,进行下一轮统计。
- 最后判断压缩后字符串的长度。
- count为出现的次数,和字符串连接需要先转换为字符串,用到to_string(count)函数。
举例如下图:
写