思路:
用双指针的方法,定一个 i 和 j
AC代码:
class Solution {
public:
string compressString(string S) {
//两层循环
if(S.size()==0) return S;
int i=0,j=0;
string ans="";
int len=S.size();
while(i<len) //外层循环
{
while(j<len&&S[j]==S[i])//内层循环
{
j++;
}
//跳出循环
ans+=S[i]+to_string(j-i);
i=j;//i从下标j的地方开始计数
}
return ans.size() >= len ? S : ans;
}
};
如有错误,多多指教!