class Solution {
public:
int compress(vector<char>& chars) {
if(chars.size()==0)
return 0;
vector<char> v;
//v.push_back(chars[0]);
int sum=1;
for(int i=0;i<chars.size();i++)
{
//只要字符串相同且没到最后一个,就sum++
if(chars[i-1] == chars[i] &&i!=chars.size()-1)
sum++;
else
{
if(chars[i-1]==chars[i] && i==chars.size()-1)
{
f(v,sum+1);
break;
}
//把统计出来的int sum转换成string并存入vector v中
if(sum!=1)
f(v,sum);
v.push_back(chars[i]);
sum=1;
}
}
swap(v,chars);
return chars.size();
}
//数字变成字符串的函数
void f(vector<char>& v,int n)
{
//考虑了数字是多位的情况
string s=to_string(n);
//"123456"->"1","2",...
for(int i=0;i<s.length();i++)
v.push_back(s[i]);
}
};