题解:
题目中返回的整数n意为取chars字符前n个字符,故要求原地修改
class Solution {
public:
int compress(vector<char>& chars) {
int n = chars.size();
if(n == 1){
return 1;
}
int len = 0;
for(int i = 0,cnt = 1;i<n;i++,cnt++){
//该字符与后一个字符不重复 修改原数组 包含对最后一个字符的处理
if(i+1 == n || chars[i]!=chars[i+1]){
chars[len++] = chars[i];
//cnt为该字符的个数
if(cnt>1){
for(char ch:to_string(cnt)){
chars[len++] = ch;
}
}
cnt = 0;
}
}
return len;
}
};