题目:443. 压缩字符串
class Solution {
public:
int compress(vector<char>& chars) {
int i = 0;
while(i < chars.size())
{
char c = chars[i];
// int cnt1 = count(chars.begin(), chars.end(), c); // 统计个数
int cnt1 = 1;
for(int j=i+1; j<chars.size(); j++)
{
if(chars[j] == c) cnt1++;
else break;
}
if(cnt1 > 1)
{
// 数字转字符串
string str;
stringstream ss;
ss << cnt1;
ss >> str;
int cnt2 = str.size();
// 在指定位置前插入输入容器区间的内容:
chars.insert(chars.begin()+i+cnt1, str.begin(), str.end()); // 插入cnt2个字符
// 删掉cnt1-1个字符,保留1个:
chars.erase(chars.begin()+i, chars.begin()+i+cnt1-1);
i = i + cnt2 + 1;
}
else i++;
}
return chars.size();
}
};