字符串压缩,即重复的使用数字计数
双指针算法,首先分析得出任何情况 char+num 的形式长度都不会超过 多个char 的形式
双指针计数得出结果即可
C++ 代码
class Solution {
public:
int compress(vector<char>& chars) {
int i=0, j=0;
for(int i=0; i<chars.size(); ++i) {
int k = i+1;
while(k<chars.size() && chars[k] == chars[i])k++;
if(k-i>1){
int len = k-i;
chars[j++] = chars[i];
string str = to_string(len);
for(char c : str)chars[j++] = c;
i = k-1;
} else {
chars[j++] = chars[i];
}
}
return j;
}
};