题目:
分析:
双指针吧!就可以线性了。
代码:
class Solution {
public:
int compress(vector<char>& chars) {
int a1=0,a2,a3;
//a1: 更新数组的位置。
if(chars.size()==0) return 0;
char c=chars[0];
int n=1;
for(int i=1;i<chars.size();i++)
{
if(chars[i]!=c)
{
chars[a1]=c;
string s=to_string(n);
a1++;
if(n!=1)
for(int i=0;i<s.size();i++)
{
chars[a1]=s[i];
a1++;
}
c=chars[i];
n=1;
}
else n++;
}
chars[a1]=c;
string s=to_string(n);
a1++;
if(n!=1)
for(int i=0;i<s.size();i++)
{
chars[a1]=s[i];
a1++;
}
return a1;
}
};