这道题好像不用保持正确答案中的数组形状,如果返回值对就可以,数组怎么篡改都没事。
class Solution {
public:
int compress(vector<char>& chars) {
int t = 0;
for(int i = 0;i<chars.size();i++)
{
if(i == chars.size()-1)
{
if(t != 0)
{
string s = to_string(++t);
for(char c:s)
{
chars.insert(chars.begin()+i+1,c);
i++;
}
}
}
else
{
if(chars[i] == chars[i+1])
{
t++;
chars.erase(chars.begin()+i+1);
i--;
}
else if(t!=0)
{
string s = to_string(++t);
for(char c:s)
{
chars.insert(chars.begin()+i+1,c);
i++;
}
t = 0;
}
}
}
return chars.size();
}
void print(vector<char>& chars)
{
for(int i = 0;i<chars.size();i++)
{
cout<<chars[i]<<" ";
}
cout<<endl;
}
};